| 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表所有行的数量
| All rows selected by either query, including all duplicates |
所以被其一查询的行,包括重复行
跟union不同的是
union all
这个操作符左右查询出的2行,不管2行的每个列是否都相同,2行都显示
| 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; /*结果为空*/
| 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*/