2013-02-05 72 views
1

我有一個列表的表進行審查,並記錄其上市進行了審查另一個表和他們進行了審查將MySQL的加入做到這一點

我試圖找出是否有可能的日期以形成一個mysql查詢,這將允許我只輸出還沒有被審查過的列表(即在被審查表中沒有該列表的條目)。

所以在下面的例子。我想查詢清單表,找到尚未審查的任何內容。在這種情況下,它只會返回第一個列表(id#1),因爲其他兩個已經被審查。這是應該用MySQL連接完成的嗎?

Listings Table: 

id|title 
1|First Listing 
2|Second Listing 
3|Third Listing 
etc. 

Reviewed Table: 

id|listing_id|review_date 
1|2|2013_02_05 
2|3|2013_02_05 

回答

0

您可以使用LEFT JOINNULL這樣的:

SELECT L.* 
FROM Listings L 
    LEFT JOIN Reviewed R ON L.Id = R.Listing_Id 
WHERE R.Id IS NULL 

或者你可以使用NOT IN

SELECT L.* 
FROM Listings L 
WHERE ID NOT IN (SELECT Listing_ID FROM Reviewed) 

這裏是SQL Fiddle

祝你好運。

+0

這正是我想要做的。巨大的幫助,非常感謝。 – Frank