Mysql学习笔记(三)

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操作符

Mysql学习笔记(三)_第1张图片
上面的例子中,先返回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学习笔记(三)_第2张图片

Mysql From子查询

from子查询是指from的字句作为子查询语句,子查询语句再到子查询结果集中获取需要的数据。
FROM子查询的语法如下

SELECT ... FROM (subquery) AS name ...

子查询会生成一个临时表,由于from子句中的每个表必须有一个名称,因此AS Name是必须的。
Mysql学习笔记(三)_第3张图片

你可能感兴趣的:(Mysql学习笔记(三))