比如说现在有一个集合A{1,2,3,4,5}和集合B{5,6.7,8,9}
union是求两个(或者多个)集合的并集(不允许重复元素),得到的集合是{1,2,3,4,5,6,7,8,9};
union all也是求两个(或者多个)集合的并集(允许重复元素),得到的集合是{1,2,3,4,5,5,6,7,8,9};
而minus是求两个集合的差集,并且是前面一个集合去掉重复元素的部分,得到的集合是{1,2,3,4};
我们在数据库里面来看一下:
现在有两个表B,C 表里面的数据如下:
现在我们来执行以下三条sql:
select * from ( select id from B unionselect id from C)
select * from ( select id from B union all select id from C)
select * from ( select id from B minusselect id from C )
得到的结果如下:
结果跟我描述的一致。
ps:使用这些关键字的时候,比如 sqlA union sqlB,要注意sqlA要和sqlB所查的数据的个数以及数据类型要一致,不然会报错。