2016-07-27 78 views

回答

3

可以使用FULL JOIN來組合這兩個表,然後使用WHERE子句通過檢查每個表主鍵值中的NULL來將結果篩選爲僅匹配不匹配的行。

全外連接在所有連接的表的所有行在內,它們是否匹配與否。

SELECT a.pk, b.pk 
FROM tableA a 
FULL JOIN tableB b ON a.pk=b.fk 
WHERE 
    a.pk IS NULL 
    OR b.pk IS NULL 
+0

工作過,謝謝! – a1234

0
SELECT A2.* FROM TableA A2 
       WHERE A2.my_id NOT IN 
         (Select tableA.my_id FROM 
            tableA 
            inner join 
            tableB 
            on tableA.my_id = tableB.my_id) 

你可以同樣做到以上開始SELECT B2.* FROM TableB B2,爲了如果你想在你可能UNION ALL兩個查詢,這取決於一個表中的所有記錄,分別在表B

  • 查詢匹配的記錄表字段結構是相同的,或者您如何指定您選擇的字段 - 您對數據做了什麼?
0

SELECT * FROM表A,其中添加my_id NOT IN(SELECT從tableB的添加my_id)
UNION ALL
SELECT * FROM tableB的地方添加my_id NOT IN(從表A選擇添加my_id)

相關問題