2011-10-18 59 views
1

我有4个具有相同结构的表格。 这4个表格是从另一个主表格生成的。比较mysql中的多个表格

  • 主表 - > A(10个000行)
    • 表1 - > A1(2个000行)
    • 表2 - > A2(3个000行)
    • 表3 - > A3(4个000行)
    • 表4 - > A4(1个000行)

它假定4生成表是不相交,他们的总和等于表A.

但我需要确认这一点。

我的问题:我如何比较这4个表,看他们是否有任何共同的id?

我知道我可以用a2构建内部联接a1的很多查询,a1用a3构建等等。

但我认为这应该是另一种更好的方法。

+0

在所有表格之间编写内部连接的id有什么问题? –

+0

,因为内部联接查找所有四个表之间共有的所有ID。但是我想要的不是那个。我想知道一个特定的ID是否出现在多个表中。 – balsagoth

回答

2

我只想union all在一起,所有的从每个表的ID,group by每个,并查看是否如果发生任何ID一次以上任意具有计数超过一个

select count(*) from (
select id from table1 union all 
select id from table2 union all 
select id from table3 union all 
select id from table4) group by id having count(*)>1 

,它会在结果中显示这个查询。

+0

谢谢!它工作得很好,而且很简单。使用MySQL我只需要添加一个别名到派生表。 – balsagoth