Self join
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 46 / 72.
Kendi kendine bağlama (Self-join), farklı bir birleştirme (join) türüdür. Şu ana kadar birden fazla tablo birleştirmesinden bahsettik, ancak self-join işlemleri aynı tabloya uygulanır. Klasik bir örnek, bir employees tablosu olacaktır.
| employee_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
En üst düzey yönetici hariç her çalışanın bir yöneticisi vardır ve her yönetici de aynı zamanda bir çalışandır.
Problem: Her çalışan için yöneticinin adını öğrenmek istiyoruz.
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_idAynı table arasında birleştirme yapıyoruz; tek fark bir defasında ona e1 diyoruz ve ikinci defasında e2 oluyor. Join işlemi employee_id ve manager_id alanları arasındadır.
Sonuç:
| employee_id | employee_name | manager_name |
|---|---|---|
| 1 | Minke | Temur |
| 2 | Temur | Tatjana |
| 3 | Tatjana | Marinela |
Görev
OrtaKullanılabilir tablolar ve sütunlar:
<strong>friends</strong>:<strong>id</strong>,<strong>name</strong>,<strong>friend_id</strong>
Karşılıklı arkadaş olan arkadaş çiftlerini bulun (A kişisinin friend_id değeri B kişisini VE B kişisinin friend_id değeri A kişisini gösterdiğinde karşılıklı arkadaşlık oluşur). Her iki arkadaşın adını tek bir satırda gösterin. Sütunları friend1 ve friend2 olarak adlandırın.
Not: Yinelenen çiftleri içermemesi için WHERE koşuluna friend1.id < friend2.id kriterini ekleyin
Kendin dene
-- Tabloyu kendisine birleştir ki bir satır iki farklı kişiyi gösterebilsin
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- Yalnızca birbirini işaret eden çiftleri tut
WHERE ____ AND f1.id < f2.id;Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
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 columnsKendi başına pratik yap: SQL playground