2011-03-16 155 views
1
DELETE FROM images WHERE image_id IN(
    (SELECT i.image_id FROM images i 
    LEFT JOIN ads a ON i.ad_id=a.id 
     WHERE ISNULL(a.id)) 
) 

我需要完成此查詢。任何幫助將不勝感激。謝謝;)Mysql:使用IN子查詢刪除

+1

a.id'如何在連接,但也爲空?我會認爲你的SELECT不起作用。 – 2011-03-16 18:34:12

+0

@John Giotta:這是一個左連接,所以OP在'images'中尋找行,其中'images.ad_id'列在'ads'表中沒有對應的條目,因此'a.id'將是NULL在這些情況下。 – 2011-03-16 18:52:33

+0

@Joe Stefanelli - 你是對的。我沒有正確地考慮這一點。 – 2011-03-16 18:55:57

回答

1
DELETE i 
    FROM images i 
     LEFT JOIN ads a ON i.ad_id=a.id 
    WHERE ISNULL(a.id) 
+0

謝謝隊友。 ;)+1 – Somebody 2011-03-16 18:54:31