Maison >base de données >tutoriel mysql >Comment supprimer efficacement des lignes d'une table SQL en fonction des identifiants d'une autre ?

Comment supprimer efficacement des lignes d'une table SQL en fonction des identifiants d'une autre ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-05 04:17:40386parcourir

How to Efficiently Delete Rows from One SQL Table Based on IDs in Another?

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 :

  • L'utilisation d'alias dans l'instruction DELETE est recommandée .
  • Empêchez les suppressions accidentelles en mettant en surbrillance l'intégralité de la requête avant de l'exécuter pour éviter de supprimer la table entière au lieu de lignes spécifiques.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn