Maison > base de données > tutoriel mysql > Comment les auto-jointures peuvent-elles aider à relier les données au sein d'une seule table ?

Comment les auto-jointures peuvent-elles aider à relier les données au sein d'une seule table ?

Barbara Streisand
Libérer: 2025-01-13 11:25:12
original
583 Les gens l'ont consulté

How Can Self Joins Help Relate Data Within a Single Table?

Compréhension approfondie de la connexion à soi : un guide

Dans les systèmes de gestion de bases de données relationnelles, l'auto-jointure est une opération puissante qui permet de joindre des tables entre elles. Ceci est particulièrement utile lorsque vous devez comparer ou corréler les données de différentes lignes d'un tableau.

Quand utiliser l'auto-connexion

Lorsqu'une table contient une colonne qui fait référence à des données dans la même table, vous devez utiliser une auto-jointure. Un exemple courant est une table d'employés, qui contient une colonne SupervisorID qui pointe vers le superviseur de l'employé actuel.

Pour effectuer une auto-jointure, la table est en fait divisée en deux instances, souvent appelées respectivement e1 et e2. e1 représente le tableau original, tandis que e2 est sa copie. Ensuite, la condition de jointure devient e1.column = e2.column.

Exemple

Considérez le tableau des employés suivant :

EmployeeID FirstName LastName SupervisorID
1 John Doe 2
2 Mary Smith NULL
3 Jane Brown 1

Pour interroger les données et récupérer des informations sur les employés et leurs superviseurs sur une seule ligne, vous pouvez utiliser une auto-jointure :

SELECT e1.EmployeeID, 
       e1.FirstName, 
       e1.LastName,
       e1.SupervisorID, 
       e2.FirstName AS SupervisorFirstName, 
       e2.LastName AS SupervisorLastName
FROM Employee e1
LEFT OUTER JOIN Employee e2 ON e1.SupervisorID = e2.EmployeeID
Copier après la connexion

Cette requête produira les résultats suivants :

EmployeeID FirstName LastName SupervisorID SupervisorFirstName SupervisorLastName
1 John Doe 2 Mary Smith
3 Jane Brown 1 John Doe

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!

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