Comment supprimer des enregistrements dans une base SQL Server en utilisant la fonction INNER JOIN ?

La commande SQL DELETE permet d'effacer des enregistrements suivant des conditions définies dans la requête SQL. Vous pouvez donc utiliser la clause WHERE, mais également des jointures avec la clause INNER JOIN.

La commande DELETE n'accepte normalement pas d'argument ; c'est le mot clé FROM qui définit la ou les table(s) pour la(es)quelle(s) des enregistrements seront effacés. Mais lorsque vous utilisez la clause INNER JOIN, vous devez spécifier après le mot clé DELETE quelle table sera liée à l'effacement : DELETE t1

FROM table1 t1
INNER JOIN table2 t2
ON t1.id = t2.idParent
Where ...

Si vous oubliez de préciser la table visée par la commande DELETE avec le mot clé INNER JOIN, le message d'erreur suivant apparaîtra :Incorrect syntax near the keyword 'INNER'.

SQL