更新时间:2022-08-12 GMT+08:00
WHERE嵌套子查询
功能描述
在WHERE子句中嵌套子查询,利用子查询的结果作为过滤条件。
语法格式
1 2 |
SELECT [ALL | DISTINCT] attr_expr_list FROM table_reference
WHERE {col_name operator (sub_query) | [NOT] EXISTS sub_query};
|
关键字
- ALL:返回重复的行。为默认选项。其后只能跟*,否则会出错。
- DISTINCT:从结果集移除重复的行。
- WHERE:WHERE子句嵌套将利用子查询的结果作为过滤条件。
- operator:包含关系运算符中的等式与不等式操作符及IN,NOT IN,EXISTS,NOT EXISTS操作符。
- 当operator为IN或者NOT IN时,子查询的返回结果必须是单列。
- 当operator为EXISTS或者NOT EXISTS时,子查询中一定要包含WHERE条件过滤。当子查询中有字段与外部查询相同时,需要在该字段前加上表名。
注意事项
所要查询的表必须是已经存在的表,否则会出错。
示例
先通过子查询在course_info中找到Biology所对应的课程编号,再在student_info表中找到选了该课程编号的学生姓名。
1 2 |
SELECT name FROM student_info
WHERE courseId = (SELECT courseId FROM course_info WHERE courseName = 'Biology');
|
父主题: 子查询