Suppression de lignes basées sur une autre table
En SQL, il n'est pas rare de rencontrer le besoin de supprimer des lignes d'une table en fonction de leur présence dans un autre tableau. Considérez le scénario suivant :
Requête DB :
Je n'arrive pas à me souvenir de cette requête !
Objectif de requête DB :
Je souhaite supprimer toutes les lignes du tableau 1 dont les identifiants sont les mêmes que ceux du tableau 2. Cela peut être exprimé comme :
DELETE table1 t1 WHERE t1.ID = t2.ID
Bien que l'approche de sous-requête soit valide, nous explorerons comment y parvenir en utilisant un JOIN pour des performances améliorées :
Solution de requête DB utilisant JOIN :
DELETE t1 FROM Table1 t1 JOIN Table2 t2 ON t1.ID = t2.ID;
En tirant parti de JOIN, nous établissons une relation entre les lignes du tableau 1 et Table2 basée sur leur colonne ID. Les lignes du tableau 1 qui partagent des valeurs d'ID avec les lignes du tableau 2 seront identifiées et éligibles à la suppression.
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!