文档首页 > > SQL语法参考> SELECT相关语句> 子查询> WHERE嵌套子查询

WHERE嵌套子查询

分享
更新时间: 2019/09/12 GMT+08:00

功能描述

在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');
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区