2014-03-24 66 views
2

我試圖在MySQL數據庫的phpMyAdmin中運行SQL查詢以獲取在另一個表中沒有對應記錄的記錄。sql select在第二個表中沒有關係的記錄

E.g.

**album** 
id, name 

**track** 
id, album_id, name 

我需要沒有相對軌跡記錄的所有專輯記錄。

我已經試過

SELECT album.id 
from album 
WHERE album.id NOT IN (
    SELECT track.album_id 
    FROM track 
    WHERE 1 
    GROUP BY track.album_id 
) 

不過遺憾的是這個崩潰的MySQL服務

我也曾嘗試

SELECT a.id FROM album a 
INNER JOIN track t 
ON a.id = t.album_id 
WHERE t.id IS NULL 

但這並不按預期(不返回任何結果)

+1

我可以建議LEFT JOIN? –

+1

內部連接意味着「兩個記錄相等」。所以它不會工作。就像Zdavko剛剛發佈的那樣......你想要一個左外連接,這意味着在左側給我所有這些,無論右邊有什麼匹配 –

+0

left join man! –

回答

7
SELECT a.id 
FROM album a 
LEFT JOIN track t ON a.id = t.album_id 
WHERE t.id IS NULL 
相關問題