UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

注意:UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

注释:UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

 



select t.inquiry_id, count(t.inquiry_id) as cc from ((
select distinct inquiry_id
from t_inquiry_A
where inquiry_id in
(1,2,3,4,5,6) )
union all
(select distinct inquiry_id
from t_inquiry_B
where inquiry_id in
(1,2,3,4,5,6))
)t group by t.inquiry_id having cc=1;


上面的语句可以将 

A表 与B表中的 id为(1,2,3,4,5)的数据查出来,然后 放到一起,union all表示可以有重复,再将结果集 按 inquiry_id进行group操作,取出数量为1的id

实例:当表A中只有id 1,2,3 , 表B中只有id为3,4,5 那么union all的结果就是 1,2,3,3,4,5 , group 并 count having后结果是 1, 2,4,5

这里如果用 union 不用union all的话,结果就是1,2,3,4,5 , 因为 union 会默认将结果集去重,因此对结果集 group count总是1