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';
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';
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';
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!