2011-03-16 114 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