我需要比較2個表來找到重複,但這些字段允許重複。SQL:比較兩個表與重複
For Example:
Tbl1:
455
7991
7991
Tbl2:
455
7991
7991
7991
我需要編寫一個查詢,顯示有一個額外的7991在表2中我嘗試了右連接,但它仍然找到了比賽,因此不能正常工作。如果有人能指出我正確的方向,我將不勝感激。謝謝!!
我需要比較2個表來找到重複,但這些字段允許重複。SQL:比較兩個表與重複
For Example:
Tbl1:
455
7991
7991
Tbl2:
455
7991
7991
7991
我需要編寫一個查詢,顯示有一個額外的7991在表2中我嘗試了右連接,但它仍然找到了比賽,因此不能正常工作。如果有人能指出我正確的方向,我將不勝感激。謝謝!!
SELECT t1.colname
FROM (SELECT colname
, COUNT(colname) AS colCount
FROM tbl1
GROUP BY colname
) t1
INNER JOIN (SELECT colname
, COUNT(colname) AS colCount
FROM tbl2
GROUP BY colname
) t2 ON t1.colname = t2.colname
AND t1.colCount <> t2.colCount
+1這看起來像我喜歡MS Access的正確方法。我編輯了SQL,因爲我不認爲Access的數據庫引擎接受JOIN作爲INNER JOIN的同義詞。如果你想要別的東西,請更改它。如果它不能像寫入那樣工作,我會將't1.colCount <> t2.colCount'移動到WHERE子句。 – HansUp
完美工作,謝謝! – user1018766
如果你的數據庫支持FULL OUTER JOIN(不是MySQL的)這會給你所有的兩個表之間的差異:
SELECT
T1.x,
COALESCE(T1.cnt, 0) AS T1_count,
COALESCE(T2.cnt, 0) AS T2_count
FROM
(
SELECT x, COUNT(*) AS cnt
FROM Tbl1
GROUP BY x
) T1
FULL OUTER JOIN
(
SELECT x, COUNT(*) AS cnt
FROM Tbl2
GROUP BY x
) T2
ON T1.x = T2.x
WHERE T1.cnt <> T2.cnt
感謝您的快速響應!我現在就開始吧。 – user1018766
什麼RDBMS是這個呢? –
這是您在表中唯一的價值,7991的其他值是不同的? – GregM
這是用於Microsoft Access的。我嘗試了下面的代碼,但他們沒有解決。我不知道我理解你的問題格雷格? – user1018766