2011-03-16 5 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)) 
) 

J'ai besoin d'accomplir cette requête. Toute aide serait appréciée. Merci;)Mysql: DELETE avec la sous-requête IN

+1

Comment 'a.id' est-il dans la jointure, mais aussi null? Je pense que votre SELECT ne fonctionnerait pas. –

+0

@John Giotta: C'est une jointure GAUCHE, donc OP recherche des lignes dans 'images' où la colonne' images.ad_id' n'a pas d'entrée correspondante dans la table 'ads', donc' a.id' serait NULL dans ces cas. –

+0

@Joe Stefanelli - Vous avez absolument raison. Je n'ai pas pris cela en compte correctement. –

Répondre

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

Merci compagnon. ;) +1 – Somebody