MySQL中的子查询
是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句、DML语句中也都会常用到子查询。
子查询的定义:
子查询是将一个查询语句嵌套在另一个查询语句中;
在特定情况下,一个查询语句的条件需要另一个查询语句来获取,内层查询(inner query)语句的查询结果,可以为外层查询(outer query)语句提供查询条件。
特点(规范):
①子查询必须放在小括号中
②子查询一般放在比较操作符的右边,以增强代码可读性
③子查询(小括号里的内容)可出现在几乎所有的SELECT子句中(如:SELECT子句、FROM子句、WHERE子句、ORDER BY子句、HAVING子句……)
(相关、不相关)子查询分类:
①标量子查询(scalar subquery):返回1行1列一个值
②行子查询(row subquery):返回的结果集是 1 行 N 列
③列子查询(column subquery):返回的结果集是 N 行 1列
④表子查询(table subquery):返回的结果集是 N 行 N 列
可以使用的操作符:= > < >= <= <> ANY IN SOME ALL EXISTS
注意:一个子查询会返回一个标量(就一个值)、一个行、一个列或一个表,这些子查询称之为标量、行、列和表子查询
1、如果子查询返回一个标量值(就一个值),那么外部查询就可以使用:=、>、=、<=和<>符号进行比较判断;
2、