简介
子查询是一个嵌套在一个大查询里面的一个小的SQL查询语句,嵌套在一个大查询的语句中,作为整个大查询的一部分。子查询可以出现在父查询的SELECT, INSERT, UPDATE, DELETE, SET, DO 等部分,也可以包含在一个子查询中,但是一般情况下它包含在大查询的WHERE条件中。
SELECT first_name,last_name, salary FROM employeesWHERE salary >(SELECT max(salary) FROM employeesWHERE first_name='wang');
子查询中可以包含单行比较运算符,例如:> , < 或者 =,也可以是包含多行比较运算符IN,ANY,SOME或者ALL操作符。
子查询一般被称为内部查询,包含它的查询被称为外部查询或者父查询,子查询作为父查询的一部分,并且在执行父查询之前执行,所以,父查询可以使用子查询的结果。
关联子查询:关联子查询表示在子查询中引用了一个父查询引用的表,(也就是说子查询中引用的表,父查询也引用了该表),例如:
SELECT last_name, salary, department_idFROM employees outerrWHERE salary>(SELECT AVG(salary)FROM employeesWHERE department_id = outerr.department_id);子查询需要用括号包裹起来,当子查询返回空的时候父查询不会报错,但有可能返回不是你想要的数据,当使用单行操作符时如果返回多行数据会报错。
文章转载自Thornger,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




