2011-10-18 5 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が共通しているかどうかを確認します。

私は内側のa1にa2を、a1にa3を、そしてそうするためにたくさんのクエリーを作ることができます。

しかし、私はそれが別のよりよい方法であるべきだと思います。

+0

すべてのテーブル間でidの内部結合を記述すると何が問題になりますか? –

+0

内部結合は4つのテーブルすべてに共通のすべての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

関連する問題