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
Libérer: 2025-01-05 04:17:40
original
376 Les gens l'ont consulté

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
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal