logo

MySQL SUPPRIMER REJOINDRE

La requête DELETE est une sous-partie du langage de manipulation de données utilisée pour supprimer les lignes des tables. Comment supprimer une participation MySQL est une question très populaire lors des entretiens. Ce n'est pas un processus facile d'utiliser les instructions delete join dans MySQL. Dans cette section, nous allons décrire comment supprimer des enregistrements de plusieurs tables à l'aide de INNER JOIN ou LEFT JOIN dans la requête DELETE.

SUPPRIMER JOIN avec INNER JOIN

La requête Inner Join peut être utilisée avec la requête Supprimer pour supprimer les lignes d’une table et les lignes correspondantes de l’autre table qui remplissent la condition spécifiée.

Syntaxe

Voici la syntaxe qui peut être utilisée pour supprimer des lignes de plusieurs tables à l’aide de Inner Join .

 DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition 

Ici, la cible est un nom de table à partir de laquelle nous souhaitons supprimer des lignes en répondant à la condition spécifiée. Supposons que vous souhaitiez supprimer des lignes du tableau T1 et T2étudiant_id = 2 , alors cela peut s'écrire sous la forme suivante :

1 sur 1000,00
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

Dans la syntaxe ci-dessus, la table cible (T1 et T2) est écrite entre les mots-clés DELETE et FROM. Si nous omettons un nom de table, alors le supprimer l'instruction supprime uniquement les lignes d’une seule table. L'expression écrite avec SUR Le mot-clé est la condition qui correspond aux lignes des tableaux où vous allez supprimer.

Exemple

Supposons que nous ayons deux tables étudiants et Contacts qui contient les données suivantes :

Tableau : étudiants

MySQL SUPPRIMER REJOINDRE

Tableau : contacts

MySQL SUPPRIMER REJOINDRE

Exécutez la requête suivante pour comprendre le Supprimer la jointure avec jointure intérieure. Cette instruction supprime une ligne ayant le même identifiant dans les deux tables.

 DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4; 

Après une exécution réussie, il affichera le message suivant :

MySQL SUPPRIMER REJOINDRE

Maintenant, exécutez la requête suivante pour vérifier les lignes supprimées avec succès.

remplacer tout dans la chaîne java
 mysql> SELECT * FROM students; mysql> SELECT * FROM contacts; 

Vous pouvez voir que les lignes où le étudiant_id=4 est supprimé.

MySQL SUPPRIMER REJOINDRE MySQL SUPPRIMER REJOINDRE

SUPPRIMER JOIN avec LEFT JOIN

Nous avons déjà appris la clause LEFT JOIN avec l'instruction SELECT qui renvoie toutes les lignes de la table de gauche (première) et les lignes correspondantes ou non d'une autre table. De même, nous pouvons également utiliser la clause LEFT JOIN avec le mot-clé DELETE pour supprimer les lignes de la table de gauche (première) qui n'ont pas de lignes correspondantes d'une table de droite (deuxième).

La requête suivante explique plus clairement où l'instruction DELETE utilise LEFT JOIN pour supprimer des lignes de Tableau 1 qui n'a pas de lignes correspondantes dans le Tableau 2 :

 DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL; 

Dans la requête ci-dessus, notez que nous n'utiliserons que Table1 avec le mot-clé DELETE, et non les deux comme dans l'instruction INNER JOIN.

Exemple

Créons un tableau ' Contacts ' et ' clients ' dans une base de données qui contient les données suivantes :

Tableau : contacts

combien de touches ont les claviers
MySQL SUPPRIMER REJOINDRE

Tableau : clients

MySQL SUPPRIMER REJOINDRE

Exécutez l'instruction suivante qui supprime le client qui n'a pas de téléphone portable nombre:

 DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL; 

Après une exécution réussie, il affichera le message suivant :

MySQL SUPPRIMER REJOINDRE

Maintenant, exécutez la requête suivante pour vérifier les lignes supprimées avec succès.

 mysql> SELECT * FROM customers; 

Vous pouvez constater que les lignes où le client n'a pas le numéro de téléphone portable sont supprimées.

MySQL SUPPRIMER REJOINDRE