各位大大好,谢谢进来帮助小弟。
是这样的,本人有3个表,分别结构都是相同的,分别为:data_1,data_2,data_3
本人想查询这3个:data_1,data_2,data_3 表当中的key 里重复内容并列出来,本人现在下面的这句SQL是只能查询一个表,问一下怎么联合3个表一起共同查询吗?求大大指点,万分感谢。
select id,key,time FROM data_1 WHERE key IN (SELECT key FROM data1 GROUP BY key HAVING COUNT(key) > 1);
是这样的,本人有3个表,分别结构都是相同的,分别为:data_1,data_2,data_3
本人想查询这3个:data_1,data_2,data_3 表当中的key 里重复内容并列出来,本人现在下面的这句SQL是只能查询一个表,问一下怎么联合3个表一起共同查询吗?求大大指点,万分感谢。
select id,key,time FROM data_1 WHERE key IN (SELECT key FROM data1 GROUP BY key HAVING COUNT(key) > 1);
解决方案
40
select id,key,time FROM (SELECT * FROM data_1 UNION ALL SELECT * FROM data_2 UNION ALL SELECT * FROM data_3)t1 WHERE key IN (SELECT key FROM (SELECT * FROM data_1 UNION ALL SELECT * FROM data_2 UNION ALL SELECT * FROM data_3)t2 GROUP BY key HAVING COUNT(key) > 1);
记错了union 不能直接连表,union 会去重组合,union all只是简单组合