Maison >base de données >tutoriel mysql >Comment les auto-jointures peuvent-elles aider à relier les données au sein d'une seule 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 :
<code class="language-sql">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</code>
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!