Maison > base de données > tutoriel mysql > Comment supprimer des lignes à l'aide de LEFT JOIN dans les requêtes MySQL DELETE ?

Comment supprimer des lignes à l'aide de LEFT JOIN dans les requêtes MySQL DELETE ?

Mary-Kate Olsen
Libérer: 2024-11-30 09:07:15
original
433 Les gens l'ont consulté

How to Delete Rows Using LEFT JOIN in MySQL DELETE Queries?

Suppression des délais à l'aide de LEFT JOIN dans MySQL

Dans le cadre de la gestion des délais de travail et des descriptions de poste stockées dans deux tables, vous avez rencontré des difficultés en supprimant des lignes basées sur une requête LEFT JOIN. Pour résoudre ce problème, il est crucial de comprendre la syntaxe correcte pour exécuter des requêtes DELETE avec LEFT JOIN.

L'instruction LEFT JOIN vous permet de sélectionner des lignes dans la table "gauche" (dans ce cas, la date limite) et d'inclure la correspondance lignes de la table « droite » (dans ce cas, travail) en fonction d'une condition de jointure. Cependant, la suppression de lignes à l'aide de LEFT JOIN nécessite un changement subtil dans la syntaxe de votre requête.

Pour réussir à supprimer des lignes de la table d'échéances sur la base d'un LEFT JOIN avec la table de travail, vous devez spécifier explicitement la table à partir de laquelle le les lignes seront supprimées. Voici les variantes possibles :

Supprimer uniquement les lignes de date limite

Si vous souhaitez supprimer uniquement les lignes de date limite, votre requête doit être modifiée comme suit :

DELETE `deadline` FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno';
Copier après la connexion

Dans cette requête, DELETE date limite FROM spécifie que vous souhaitez supprimer des lignes de la table des délais. Le LEFT JOIN est utilisé pour filtrer les lignes en fonction de la colonne d'état de la table des tâches.

Supprimer la date limite et les lignes de la tâche

Si vous souhaitez supprimer à la fois la date limite et la tâche lignes basées sur les critères LEFT JOIN, vous devez utiliser la requête suivante :

DELETE `deadline`, `job` FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno';
Copier après la connexion

Ici, DELETE date limite, job FROM spécifie que vous souhaitez supprimer des lignes des tables d'échéance et de travail.

Supprimer uniquement les lignes de travail

Si vous souhaitez supprimer uniquement les lignes de travail, mais conservez les lignes de date limite, vous devez utiliser la requête suivante :

DELETE `job` FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno';
Copier après la connexion

Il est important de garder à l'esprit que l'ordre des noms de table dans l'instruction DELETE peut avoir un impact sur les lignes qui seront supprimées.

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