推特 阿里云技术文档正文

UNION、INTERSECT和EXCEPT_SELECT_SQL手册_分析型数据库MySQL版

admin 阿里云技术文档 2020-02-11 167 0
阿里云服务器优惠

UNION、INTERSECT和EXCEPT

UNIONINTERSECTEXCEPT用于将多个查询结果集进行组合,从而得到一个最终结果。

语法

  1. query
  2. { UNION [ ALL ] | INTERSECT | EXCEPT | MINUS }
  3. query

参数

  • UNION:返回两个查询表达式的集合运算。

  • UNION ALLALL关键字用于保留UNION中产生的重复行。

  • INTERSECT:返回只有在两个集合中同时出现的行,返回结果将删除两个集合中的重复行。

  • EXCEPT| MINUS:先删除两个集合中重复的数据行,返回只在第一个集合中出现并且不在第二个集合中出现的所有行。MINUSEXCEPT作用相同。

计算顺序

  • UNIONEXCEPT集合运算符为左关联,如果未使用圆括号来改变计算顺序,则按照从左到右的顺序进行集合运算。

    例如,以下查询中,首先计算T1T2UNION,然后对UNION结果执行EXCEPT操作。

    1. select * from t1
    2. union
    3. select * from t2
    4. except
    5. select * from t3
    6. order by c1;
  • 在同一查询中,组合使用集合运算符时,INTERSECT运算符优先于UNIONEXCEPT运算符。

    例如,以下查询先计算T2T3的交集,然后将计算得到的结果与T1进行并集。

    1. select * from t1
    2. union
    3. select * from t2
    4. intersect
    5. select * from t3
    6. order by c1;
  • 可以使用圆括号改变集合运算符的计算顺序。

    以下示例中,将T1T2的并集结果与T3执行交集运算。

    1. (select * from t1
    2. union
    3. select * from t2)
    4. intersect
    5. (select * from t3)
    6. order by c1;
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

-----