Comment MySQL supprime avec les instructions Supprimer la jointure

Comment MySQL supprime avec les instructions Supprimer la jointure
Ce tutoriel discutera de la façon d'utiliser la clause de suppression MySQL dans une instruction JOIN pour supprimer les données de plusieurs tables qui répondent à la condition spécifiée.

Le but de ce tutoriel est de vous aider à comprendre comment utiliser la clause de suppression avec la clause de jointure pour supprimer les données à la fois. Si vous êtes nouveau dans MySQL, considérez nos autres tutoriels, tels que des jointures et des tutoriels de tables de drop.

Laissez-nous commencer.

Utilisation de base: Supprimer avec jointure intérieure

La première méthode de suppression dont nous allons discuter est de savoir comment utiliser la clause de suppression MySQL dans une instruction de jointure intérieure pour supprimer les données des lignes correspondant à un autre tableau.

La syntaxe générale pour implémenter une telle requête est indiquée ci-dessous:

Supprimer tbl1, tbl2 de tbl1 Inner join tbl2 sur tbl1.col = tbl2.col où [condition];

Laissez-moi vous assurer que c'est plus facile qu'il n'y paraît. Laisse-moi expliquer:

Nous commençons par spécifier les tables à partir desquelles nous voulons supprimer les données. Les tables sont spécifiées entre la clause de suppression et de la clause.

Dans la deuxième partie, nous spécifions la condition pour les lignes correspondantes dans les tables définies. Par exemple:

tbl1.col = tbl2.col

Enfin, nous définissons la condition où détermine les lignes des tables spécifiées à supprimer.

Exemple de cas d'utilisation

Permettez-moi d'utiliser un exemple pour illustrer comment nous pouvons utiliser la clause de suppression et la jointure intérieure pour supprimer les lignes de plusieurs tables. Considérez les requêtes ci-dessous:

Créer une société de schéma;
Utiliser la société;
Déposez la table si existe des utilisateurs, des contacts;
Créer des utilisateurs de table (
user_id int clé primaire auto_increment,
First_name Varchar (100),
Last_name Varchar (100),
État Varchar (50)
));
Créer des contacts de table (
home_id int key primaire auto_increment,
Tel Varchar (50),
Adresse Varchar (255)
));
Insérer dans les utilisateurs (First_name, Last_name, State) Values ​​("John", "Muller", "Colorado"), ("Mary", "Jane", "Californie"), ("Peter", "Quill", "New York ");
Insérer dans les contacts (Tel, Adresse) VALEURS ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow, NYC ");

Une fois que nous avons de telles données, nous pouvons illustrer comment utiliser la suppression avec la jointure intérieure comme indiqué dans la requête ci-dessous:

Supprimer la société.utilisateurs, société.Contacts de la société.Utilisateurs Inner Join Contacts sur user_id = home_id où user_id = 3;

La requête ci-dessus affichera le résultat comme indiqué ci-dessous:

Deux lignes affectées en 7 ms, ce qui indique que deux lignes ont été supprimées.

Supprimer avec la jointure de gauche

La deuxième méthode de suppression dont nous discuterons consiste à utiliser la jointure gauche. La syntaxe générale pour ce type de suppression est comme indiqué ci-dessous:

Supprimer TBL1 de TBL1 à gauche Rejoignez TBL2 sur TBL1.col = tbl2.col où tble.Col est nul;

Pour Supprimer avec la jointure de gauche, nous spécifions une seule table à un tableau de la jointure intérieure où nous avons spécifié deux tables.

Considérez la requête entière ci-dessous:

Utiliser la société;
Déposez la table si existe des utilisateurs, des contacts;
Créer des utilisateurs de table (
user_id int clé primaire auto_increment,
First_name Varchar (100),
Last_name Varchar (100),
État Varchar (50)
));
Créer des contacts de table (
home_id int key primaire auto_increment,
Tel Varchar (50),
Adresse Varchar (255)
));
Insérer dans les utilisateurs (First_name, Last_name, State) Values ​​("John", "Muller", "Colorado"), ("Mary", "Jane", "Californie"), ("Peter", "Quill", "New York "), (" Mystic "," Arts "," Caroline du Sud ");
Insérer dans les contacts (Tel, Adresse) VALEURS ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow NYC "), (" 843-555-0105 ", null);
Supprimez les utilisateurs des utilisateurs qui restent les contacts de jointure sur user_id = home_id où l'adresse est nul;
Sélectionner * chez les utilisateurs;

Une fois que nous exécutons la requête ci-dessus, l'utilisateur dont l'adresse est nul après la prise de jointure et le résultat de sortie est comme indiqué ci-dessous:

Conclusion

Dans ce tutoriel, nous avons discuté de la façon d'utiliser MySQL Supprimer avec des instructions de jointure pour supprimer les données de plusieurs tables.