Set Operators

UNION

All distinct rows selected by either query

所有不同的行,被其一查询的 (不同的行就是说该行的每列和其他行的每列至少有一个列是不同的,就是不同的行)

这个操作符左右查询出的2行,如果2行的不同列都相同,则该行只显示一次,如果2行中只要有1列不同,则2行都会显示

比如你union同一个表

select id from messagebox union select id from messagebox;

因为id都是相同的,所以就相当于一个select messagebox

如果查询

select id,1from messagebox union select id,6 from messagebox m;


虽然同一行id总相等,但是1不等于6所以结果的数量是2个messagebox表所有行的数量

 

UNION ALL

All rows selected by either query, including all duplicates

所以被其一查询的行,包括重复行

跟union不同的是

union all

这个操作符左右查询出的2行,不管2行的每个列是否都相同,2行都显示

INTERSECT

All distinct rows selected by both queries

所有不同的行,被2个查询都查询出的

就是左右2个select都查询出的行(2行每列都相同的行),显示一次

 

select id,1 from messagebox minus select id,1 from messagebox m; /*结果该select语句*/
select id,1 from messagebox minus select id,2 from messagebox m; /*结果为空*/


 

MINUS

All distinct rows selected by the first query but not the second


就是union左边的select查询出而union右边的select没查询出的行

select id,1 from messagebox minus select id,1 from messagebox m; /*结果为空*/
select id,1 from messagebox minus select id,2 from messagebox m; /*结果为第一个select*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值