Supprimer la Requête en joignant plusieurs colonnes
J'ai la Table T1 avec la Colonne C1,C2 et la Table T2 avec Colonne C3,C4,C5. Je voudrais supprimer des enregistrements à partir de T1 où C1 = C3 ET C2 = C4 et C5 = '123'. Ce sera la requête j'ai essayé de suivre
DELETE FROM T1 WHERE (C1,C2) = SELECT (C3,C4) FROM T2 WHERE C5 = '123'
mais ce n'est pas de travail.
OriginalL'auteur Debopam | 2014-01-15
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de
WHERE (x,y) = (a,b)
syntaxe SQL Server, désolé. C'est une façon de supprimer, basé sur une jointure, quel que soit le nombre de colonnes sont impliqués dans la jointure:OriginalL'auteur Aaron Bertrand
Vous pouvez faire cela en utilisant
exists
:En général, l'utilisation de
exists
est mieux que d'utiliserin
avec une sous-requête parce que les valeurs Null peut amener celles-ci à faire le comportement étrange façon.OriginalL'auteur Gordon Linoff
SQL Server prend en charge un supplément auprès DE la clause dans l'instruction DELETE.
OriginalL'auteur Stuart Ainsworth