Menu
Coddy logo textTech

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_idemployee_namemanager_id
1Minke2
2Temur3
3Tatjana4
4Marinela 

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_id

Nous 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_idemployee_namemanager_name
1MinkeTemur
2TemurTatjana
3TatjanaMarinela
challenge icon

Défi

Moyen

Tables 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

quiz iconTestez-vous

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