2012-11-22 70 views
0

我需要確定表中缺少哪些記錄,並將另一個表用於比較。比較MySQL中的表數據

我想:

SELECT * FROM tableA WHERE tableA.id NOT IN (SELECT tableB.id FROM tableB) 

它正常時的數據是小課程,但表A和tableB的超過40萬點的記錄都已經和工藝卡,有沒有做到這一點更優化的方式工作?

回答

3

連接通常比IN和NOT IN子句更快。試試這個:

SELECT tableA.* 
FROM tableA left join tableB on tableA.id = tableB.id 
WHERE tableB.id is null 
+0

如果你想在任一表中丟失行,你需要兩個查詢。 –