Mysql子查询
所谓的子查询,就是在**一个查询中嵌套了其他的若干查询**。即在一个SELECT查询语句中的WHERE和FROM子句中包含另一个SELECT查询语句。在查询语句中,外层的SELECT查询语句称为**主查询**,WHERE子句中的SELECT查询语句被称为**子查询**,也称嵌套查询。
Mysql列子查询
列子查询是指查询结果返回的结果集是N行一列,该结果通常是来自对表的某个字段查询返回。
下面是一个列子查询的例子
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
列子查询中使用IN,ANY,SOME和ALL操作符
上面的例子中,先返回table2的所有s2列结果(5,12,20),然后将table1中的s1的值与之进行比较,只要大于s2的任何值即表示为true,符合查询条件。
Msql行子查询
行子查询是指子查询返回的结果集是一行N列,该子查询的结果是对表的某行数据进行查询而返回的结果集。
下面是一个行子查询的例子
SELECT * FROM table1 WHERE (1,2) = (SELECT column1, column2 FROM table2)
WHERE后面的(1,2)被称为行构造符,也可以写作ROW(1,2)
Mysql表子查询
表子查询是指子查询返回的结果集是N行N列的一个表数据。
Mysql From子查询
from子查询是指from的字句作为子查询语句,子查询语句再到子查询结果集中获取需要的数据。
FROM子查询的语法如下
SELECT ... FROM (subquery) AS name ...
子查询会生成一个临时表,由于from子句中的每个表必须有一个名称,因此AS Name是必须的。