2012-06-08 40 views
0

查詢:MySQL的NOT IN查詢只包括我想排除結果

SELECT * 
from t1 
INNER JOIN t2 ON t1.item_id = t2.item_id 
WHERE t1.item_id NOT IN 
(Select t2.item_id from t2) 

基本上,我試圖排除在t2表的ITEM_ID所有的結果,但它僅包括一個結果item_id在t2表中。我在這裏錯過了什麼......

感謝您的任何和所有迴應!

+0

謝謝大家的提示和正確的答案!在我採用正確的方法後,這一切都歸結爲邏輯層面的問題。 – theisenm85

回答

0

您加入,然後排除一切:/

至少這就是SQL說here

嘗試是這樣的:

SELECT 
    item_id 
FROM 
    t1 
WHERE 
    item_id NOT IN (SELECT item_id from t2) 

爲在here

2

我很驚訝你得到任何與該查詢,因爲你似乎排除任何你會通過加入包括。試着改變你的查詢到這一點:

SELECT * from t1 
WHERE item_id NOT IN (SELECT item_id from t2) 
+0

+1讓我笑 – jcho360

+0

非常感謝!發現我在放置「Not In」語句時遇到了一個邏輯問題(因爲查詢比發佈更復雜一些。對於sql很新穎,所以非常感謝您提供的反饋詳情,我沒有加入表格來把它們聯繫起來。 – theisenm85

0

這將從T1中選擇在T2中沒有對應條目的項目。我認爲這是你想要的。

SELECT * 
from t1 
LEFT JOIN t2 ON t1.item_id = t2.item_id 
WHERE t2.item_id IS NULL