暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL子查询

Thornger 2021-04-12
3371

简介


子查询是一个嵌套在一个大查询里面的一个小的SQL查询语句,嵌套在一个大查询的语句中,作为整个大查询的一部分。子查询可以出现在父查询的SELECT, INSERT, UPDATE, DELETE, SET,  DO 等部分,也可以包含在一个子查询中,但是一般情况下它包含在大查询的WHERE条件中。

    SELECT first_name,last_name, salary FROM employees
    WHERE salary >
    (SELECT max(salary) FROM employees
    WHERE first_name='wang');
    • 子查询中可以包含单行比较运算符,例如:> , < 或者 =,也可以是包含多行比较运算符IN,ANY,SOME或者ALL操作符

    • 子查询一般被称为内部查询,包含它的查询被称为外部查询或者父查询,子查询作为父查询的一部分,并且在执行父查询之前执行,所以,父查询可以使用子查询的结果。

    • 关联子查询:关联子查询表示在子查询中引用了一个父查询引用的表,(也就是说子查询中引用的表,父查询也引用了该表),例如:

        SELECT last_name, salary, department_id 
        FROM employees outerr
        WHERE salary>
        (SELECT AVG(salary)
        FROM employees
        WHERE department_id = outerr.department_id);
      • 子查询需要用括号包裹起来,当子查询返回空的时候父查询不会报错,但有可能返回不是你想要的数据,当使用单行操作符时如果返回多行数据会报错。


      文章转载自Thornger,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论