【mysql – 奇怪的SQL代码:为什么他们使用子查询而不是join?】教程文章相关的互联网学习教程文章

MySQL子查询用法实例分析

本文实例讲述了MySQL子查询用法。分享给大家供大家参考,具体如下: 假设表my_tbl包含三个字段a,b,c;现在需要查询表中列a的每个不同值下的列b为最小值的记录量。 比如表记录为: a b c 1 3 cd 2 3 nhd 1 5 bg 2 6 cds 1 7 kiy 3 7 vsd 3 8 ndf 希望得到结果为: a b c 1 3 cd 2 3 nhd 3 7 vsd (1) 其中一个做法:先查出每个a值下的b最小值,然后根据这些最小值去查询符合要求的所有记录。 查询符合最小b值...

MySQL中列子查询与行子查询操作的学习教程【图】

MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用 MySQL 列子查询 列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回。 一个列子查询的例子如下:SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)列子查询中使用 IN、ANY、SOME 和 ALL 操作符 由于列子查询返回的结果集是 N 行一列,因此不能直接使用 = > < >= <= <> 这些比较标量结果的操作符。在列子查询中可以使用...

在MySQL中使用子查询和标量子查询的基本操作教程【图】

MySQL 子查询 子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用。MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性。 子查询没有固定的语法,一个子查询的例子如下:SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)对应的两个数据表如下: article 文章表:user 用户表:查询返回结果如下所示:在该例子中,首先通过子查询语句查询出所有 status=1 的 ui...

MySQL的子查询中FROM和EXISTS子句的使用教程【图】

FROM 子查询 FROM 子句中的子查询 MySQL FROM 子查询是指 FROM 的子句作为子查询语句,主查询再到子查询结果中获取需要的数据。FROM 子查询语法如下:SELECT ... FROM (subquery) AS name ...子查询会生成一个临时表,由于 FROM 子句中的每个表必须有一个名称,因此 AS name 是必须的。FROM 子查询也称为衍生数据表子查询。 FROM 子查询实例 table1:s1 s2 1 5 2 12 3 20FROM 子查询 SQL 如下: SELECT s1,s2 FROM (SELECT s1, s...

MySQL中表子查询与关联子查询的基础学习教程【图】

MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据。 MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表:blog 表:SQL 如下:SELECT * FROM article WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)查询返回结果如下所示:该 SQL 的意义在于查找 article 表中指定的字段同时也存在于 blog 表中的所有的行(注意 = 比较操作符换成了 IN),实际上等同于下面的条件语句:SE...

MySQL的子查询及相关优化学习教程

一、子查询 1、where型子查询 (把内层查询结果当作外层查询的比较条件)#不用order by 来查询最新的商品 select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);#取出每个栏目下最新的产品(goods_id唯一) select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id); 2、from型子查询 (把内层的查询结果供外层再次查询) #用子查询查...

详解MySql基本查询、连接查询、子查询、正则表达查询【图】

查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过不同的查询方式,可以获得不同的数据。MySQL中是使用SELECT语句来查询数据的。在这一章中将讲解的内容包括。1、查询语句的基本语法 2、在单表上查询数据 3、使用聚合函数查询数据 4、多表上联合查询 5、子查询 6、合并查询结果 7、为表和字段取别名 8、使用正则表达式查询什么是查...

对MySQL子查询的简单改写优化

使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动表执行,然后在把该经验移植到mysql数据库上,但是不幸的是,mysql在子查询的处理上有可能会让你大失所望,在我们的生产系统上就由于碰到了这个问题:select i_id, sum(i_sell) as i_sellfrom table_datawhere i_id in (select i_id from table_data where Gmt_create >= 2011-10-07 00:00:00′)group by ...

详细讲述MySQL中的子查询操作【图】

继续做以下的前期准备工作: 新建一个测试数据库TestDB; create database TestDB; 创建测试表table1和table2;CREATE TABLE table1(customer_id VARCHAR(10) NOT NULL,city VARCHAR(10) NOT NULL,PRIMARY KEY(customer_id))ENGINE=INNODB DEFAULT CHARSET=UTF8;CREATE TABLE table2(order_id INT NOT NULL auto_increment,customer_id VARCHAR(10),PRIMARY KEY(order_id))ENGINE=INNODB DEFAULT CHARSET=UTF8; 插入测...

MySQL子查询的几种常见形式介绍

mysql子查询的几种常见写法: 代码如下:select * from xxx where col = [any|all](select * from xxxx); 该句法可分为加关键词和不加关键词的写法,当不加关键词的时候,子查询语句返回的是一个离散值(注意是一个),查询语句将以子查询语句的结果作为自己 where子句的条件进行查询,该句法可以在子查询语句前加入any、all、some等关键字,此时子查询语句返回的是一组离散值。any则表示,查询语句是以子查询返回的值作为一个范围,在...

Mysql子查询IN中使用LIMIT应用示例

这两天项目里出了一个问题,LIMIT使用后报错。 需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料 于是我先是这样写的: 代码如下: SELECT infor.name,infor.phone,infor.add, mconfig.mname,mapply.acount,from_unixtime(mapply.atime,%Y-%m-%d) as atime FROM mapply right JOIN infor ON mapply.uid = infor.uid inner JOIN mconfig ON mapply.mid = mconfig...

MySQL查询优化:用子查询代替非主键连接查询实例介绍

一对多的两张表,一般是一张表的外键关联到另一个表的主键。但也有不一般的情况,也就是两个表并非通过其中一个表的主键关联。 例如: 代码如下: create table t_team ( tid int primary key, tname varchar(100) ); create table t_people ( pid int primary key, pname varchar(100), team_name varchar(100) ); team表和people表是一对多的关系,team的tname是唯一的,people的pname也是唯一的,people表中外键team_name和tea...

详解MySQL数据库--多表查询--内连接,外连接,子查询,相关子查询【图】

多表查询 使用单个select 语句从多个表格中取出相关的查询结果,多表连接通常是建立在有相互关系的父子表上; 1交叉连接 第一个表格的所有行 乘以 第二个表格中的所有行,也就是笛卡尔积 创建一个消费者与顾客的表格: 代码如下:-- create table customers( -- id int primary key auto_increment, -- name VARCHAR(20)not null, -- address VARCHAR(20)not NULL -- ); -- CREATE table orders( -- order_namre VARCHAR(20) primary ...

详解MySQL子查询(嵌套查询)、联结表、组合查询【图】

一、子查询 MySQL 4.1版本及以上支持子查询 子查询:嵌套在其他查询中的查询。子查询的作用: 1、进行过滤: 实例1:检索订购物品TNT2的所有客户的ID= + 一般,在WHERE子句中对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。 注意:列必须匹配 ——在WHERE子句中使用子查询(如这里所示),应该保证SELECT语句具有与WHERE子句中相同数目的列。通常,子查询将返回单个列并且与单个列匹...

mysql子查询【代码】

#子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或内查询 外部的查询语句,称为主查询或外查询分类: 按子查询出现的位置:select后面:仅仅支持标量子查询from后面:支持表子查询where或having后面:★标量子查询(单行) √列子查询 (多行) √行子查询exists后面(相关子查询)表子查询 按结果集的行列数不同:标量子查询(结果集只有一行一列)列子查询(结果集只有一列多行)行子查询(结果集有一行多列)表子...