union 联合
参考:https://www.runoob.com/sql/sql-union.html(菜鸟教程)
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
浙公网安备 33010602011771号