2017-08-15 55 views
0

假設我們有一個列表A和一個相同的列表B,但B只有一個元素被刪除。找到缺少的元素。在其他方面找到缺失的數字相同的列表

我認爲,一個可行的方法是如下:

select a.element from 
a left join b 
on a.element = b.element 
where b.element is null 

這是正確?

+1

這是一個很好的解決方案。通常「不存在」或「不在」將被使用。但是這是100%有效的,並且在一些數據庫中具有最佳性能。 –

+0

其他方法涉及'減去'或'除''從A選擇a.element從B減少選擇B.element',但你有什麼是好的。 – xQbert

+0

[SQL - 從一個表中查找不存在於另一個表中的記錄]的可能重複(https://stackoverflow.com/questions/367863/sql-find-records-from-one-table-which-dont-exist在另一個) –

回答

0

您可以使用WHERE子句選擇一份聲明,其中a.element中不存在b.element,如下面的例子:

SELECT a.element 
FROM a 
WHERE a.element NOT IN (SELECT b.element FROM b) 
+0

請不要只是在這裏發佈代碼。解釋爲什麼這解決了這個問題。 – loki

相關問題