子查询 就是把其他的一个select查询 当成一个子表 然后对这个子表进一步查询。 也就是嵌套查询。
子查询最常用于SELECT语句。基本语法如下:
SELECT column_name [, column_name ]
FROM table1 [, table2 ]
WHERE column_name OPERATOR
(SELECT column_name [, column_name ]
FROM table1 [, table2 ]
[WHERE])
Code language: CSS (css)
子查询 除了用在select,还可以用在update delete insert语句中,往往充当条件。
比如
INSERT INTO COMPANY_BKP
SELECT * FROM COMPANY
WHERE ID IN (SELECT ID
FROM COMPANY)
UPDATE COMPANY
SET SALARY = SALARY * 0.50
WHERE AGE IN (SELECT AGE FROM COMPANY_BKP
WHERE AGE >= 27 );
DELETE FROM COMPANY
WHERE AGE IN (SELECT AGE FROM COMPANY_BKP
WHERE AGE >= 27 )
- 子查询要用小括号包裹起来,优先执行括号里面的SQL。
- 子查询可以放在WHERE条件、FROM后面(当作临时表)、INSERT里面。
- 子查询分为单行子查询、多行子查询,搭配
IN、=、>等运算符使用。 - 注意:子查询如果返回多行结果,不能直接用
=,要用IN。

Previous: NULL值