1
SELECT c1, c2, c3
FROM 
(SELECT * FROM table1
UNION ALL
SELECT * FROM table2
UNION ALL
SELECT * FROM table3
UNION ALL
SELECT * FROM table4) data
GROUP BY c1, c2, c2
HAVING (COUNT(*) > 1)

共通の重複行しか見つかりません。このクエリは、共通のサンプル データ テーブル 1 および 2 のすべてのデータを示しています。すべてのテーブルに共通するデータのみが必要ですか?

4

4 に答える 4

3

これにより、4 つのテーブルすべてで見つかった重複レコードが返されます

SELECT c1,c2,c3
FROM   (
           SELECT *
           FROM   table1
           UNION ALL
           SELECT *
           FROM   table2
           UNION ALL
           SELECT *
           FROM   table3
           UNION ALL
           SELECT *
           FROM   table4
       ) DATA
GROUP BY c1, c2, c3
HAVING (COUNT(*) >3)
于 2013-02-18T14:28:59.073 に答える
2

SQLServer2005+でのINTERSECT のもう1 つのオプション

SELECT c1, c2, c3
FROM Table1
INTERSECT
SELECT c1, c2, c3
FROM Table2
INTERSECT
SELECT c1, c2, c3
FROM Table3
INTERSECT
SELECT c1, c2, c3
FROM Table4
于 2013-02-18T14:22:33.207 に答える