Kendine JOIN
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 46 / 72.
Kendine birleştirmeler, farklı birleştirme türleridir. Şimdiye kadar birden çok tablo birleştirmesinden bahsettik, ancak kendine birleştirmelerde aynı tablo birleştirilir. Klasik bir örnek çalışanlar tablosu olabilir.
| 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 aynı zamanda bir çalışandır.
Sorun: Her çalışan için yöneticinin adını bilmek 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ı tablo arasında birleştirme yaparız; ancak bir seferinde ona e1, ikinci seferinde ise e2 deriz. Birleştirme, 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:
friends:id,name,friend_id
Karşılıklı arkadaş olan arkadaş çiftlerini bulun (karşılıklı arkadaşlık, A kişisinin friend_id değerinin B kişisini göstermesi VE B kişisinin friend_id değerinin A kişisini göstermesi durumunda vardır). Her iki arkadaşın adını tek bir satırda görüntüleyin. Sütunları friend1 ve friend2 olarak adlandırın.
Not: Yinelenen çiftleri içermemesi için WHERE yan tümcesine friend1.id < friend2.id ölçütünü 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
4Daha Fazla Anahtar Sözcük
IN anahtar sözcüğüBETWEEN anahtar sözcüğüLIKE anahtar sözcüğüAS anahtar sözcüğüTekrar - Cep Telefonu Modelleri2Koşullar
Koşulların TemelleriAND Anahtar SözcüğüOR Anahtar SözcüğüNOT Anahtar SözcüğüBirden Çok Koşulu BirleştirmeParantezlerBoolean Değerler3Belirli Döndürme Biçimi
Null değerlerSonuçları Sıralama 1. BölümSonuçları Sıralama 2. BölümTekrar - Siber Güvenlik FirmasıKayıt Sayısını SınırlamaTekrar - Araç Fabrikası6Giriş Alıştırmaları
Tekrar - Parlamento SeçimiTekrar - Polisin Suçluyu TutuklamasıTekrar - Bar İçecek KabıTekrar - Mühendis Yeni Sütunlar9Birden Çok Tablo
Temel JOIN Bölüm 1Temel JOIN Bölüm 2Tekrar - JOINKendine JOINTekrar - Kendine JOINUNIONSorguları Basitleştirme, WITH Anahtar SözcüğüTekrar - WITH SorgularıTekrar - Gayrimenkul Müteahhidi12Pencere Fonksiyonları 2. Bölüm
RANK ve DENSE_RANK FonksiyonlarıTekrar - RANK ve DENSE_RANKNTILE FonksiyonuToplama FonksiyonlarıROWS ve RANGE ÖlçütüKendi başına pratik yap: SQL playground