Quand utiliser MySQL Self Join et exemples

When Use Mysql Self Join



MySQL Self-Join est un type de jointure SQL qui vous permet de joindre une table à elle-même. Il fonctionne en utilisant d'autres types de jointure tels que la clause de jointure interne ou gauche pour combiner des lignes en fonction des conditions spécifiées.

Ce didacticiel vous montrera comment utiliser l'auto-jointure MySQL pour fusionner une table avec elle-même et créer des données personnalisées.







Utilisation de base

L'auto-jointure MySQL utilise des alias de table pour s'assurer que vous ne répétez pas la même table plus d'une fois dans une instruction.



REMARQUE: Si vous n'êtes pas familier avec les alias de table, consultez notre autre didacticiel qui explique le concept en détail.



La syntaxe générale pour l'utilisation d'une auto-jointure est similaire à une lors de la combinaison de deux tables. Cependant, nous utilisons des alias de table. Considérez la requête ci-dessous :





SÉLECTIONNER alias1.cols,alias2.cols DE tbl1 alias1,tbl2 alias2 [état]

Exemples de cas d'utilisation

Utilisons des exemples pour comprendre comment effectuer des auto-jointures MySQL. Supposons que vous ayez une base de données avec les informations suivantes (voir la requête complète ci-dessous)

TOMBER SCHÉMA SI EXISTE soi;
CRÉER SCHÉMA soi;
UTILISATION soi;
CRÉER TABLE utilisateurs(
identifiant INT CLÉ PRIMAIRE INCRÉMENTATION AUTOMATIQUE ,
prénom VARCHAR (255),
e-mail VARCHAR (255),
id_payment INT ,
abonnement INT
);
INSÉRER DANS utilisateurs(prénom,e-mail,id_payment,abonnement) VALEURS ('Valérie G. Phillip', ' [email protégé] ', 10001, 1), ('Sean R. Histoires', ' [email protégé] ', 10005, 2), ('Bobby S. Newsome', ' [email protégé] ', 100010, 5);

Nous allons commencer par une jointure INNER et enfin une jointure gauche.



Auto-jointure à l'aide de la jointure interne

La requête ci-dessous effectue une jointure INNER sur la table créée ci-dessus.

SÉLECTIONNER tous1.* DE utilisateurs tous1 INTÉRIEUR REJOINDRE utilisateurs al2 AU tout1.abonnement=al2.abonnement COMMANDÉ PAR identifiant DESC ;

La sortie est illustrée ci-dessous :

Auto-rejoindre à l'aide de la jointure à gauche

L'exemple de requête ci-dessous explique comment nous pouvons utiliser l'auto-jointure avec la jointure gauche.

SÉLECTIONNER ( CONCAT (al1.first_name, '->',al2.email)) COMME des détails,al1.payment_id DE utilisateurs tous1 LA GAUCHE REJOINDRE utilisateurs al2 AU al1.id=al2.id;

Le résultat de sortie est ci-dessous :

Conclusion

Ce guide vous a expliqué comment utiliser l'auto-jointure MySQL pour joindre une table avec elle-même.

Merci pour la lecture.