Self join
Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 46 sur 72.
Les auto-jointures sont des types de jointures différents. Jusqu'à présent, nous avons parlé des jointures de plusieurs tables, mais les auto-jointures sont jointes à la même table. Un exemple classique serait une table d'employees.
| employee_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
Chaque employé a un manager, à l'exception du manager de plus haut niveau, et chaque manager est également un employé.
Le problème : Pour chaque employé, nous voulons connaître le nom du manager.
SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_idNous effectuons une jointure sur la même table, sauf qu'une fois nous l'appelons e1 et la deuxième fois nous l'appelons e2. La jointure se fait entre les champs employee_id et manager_id.
Le résultat :
| employee_id | employee_name | manager_name |
|---|---|---|
| 1 | Minke | Temur |
| 2 | Temur | Tatjana |
| 3 | Tatjana | Marinela |
Défi
MoyenTables et colonnes disponibles :
<strong>friends</strong>:<strong>id</strong>,<strong>name</strong>,<strong>friend_id</strong>
Trouvez les paires d'amis qui sont des amis mutuels (une amitié mutuelle existe lorsque le friend_id de la personne A pointe vers la personne B ET que le friend_id de la personne B pointe vers la personne A). Affichez les noms des deux amis sur une seule ligne. Nommez les colonnes friend1 and friend2.
Note : Incluez dans la clause WHERE le critère friend1.id < friend2.id afin de ne pas inclure de paires en double
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns