Ringkasan: Self join
Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 47 dari 72.
Tantangan
SulitTabel dan kolom yang tersedia:
friends:id,name,friend_id
Untuk setiap orang dalam tabel friends, temukan semua koneksi teman dari teman yang mereka miliki. Koneksi teman dari teman terjadi ketika orang A berteman dengan orang B, yang kemudian berteman dengan orang C. Daftarkan koneksi ini dalam tiga kolom:
- friend1: orang yang memulai
- friend2: teman langsungnya
- friend3: teman dari temannya
Aturan:
- Jangan sertakan kasus ketika friend3 adalah orang yang sama dengan friend1
- Urutkan hasil berdasarkan nama friend1 secara menurun
Contoh: Jika Alice berteman dengan Bob, dan Bob berteman dengan Carol, maka Alice-Bob-Carol merupakan koneksi teman dari teman yang valid.
Coba sendiri
-- Gabungkan tabel dengan dirinya sendiri dua kali agar satu baris berisi rantai tiga orang
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- Buang rantai yang kembali ke orang pertama dalam rantai tersebut
WHERE ____
ORDER BY ____ DESC;Semua pelajaran di Dasar-Dasar
4Kata Kunci Lainnya
Kata kunci INKata kunci BETWEENKata kunci LIKEKata kunci ASRangkuman: Model Ponsel2Kondisi
Dasar KondisiKata Kunci ANDKata Kunci ORKata Kunci NOTMenggabungkan Beberapa KondisiTanda KurungNilai Boolean3Format Pengembalian Khusus
Nilai nullUrutkan Hasil Bagian 1Urutkan Hasil Bagian 2Ulasan: Perusahaan Keamanan SiberBatasi Jumlah RecordUlasan: Pabrik Kendaraan6Tantangan Pengantar
Ulasan: Pemilihan ParlemenUlasan: Polisi Menangkap Pelaku KejahatanUlasan: Wadah Minuman BarUlasan: Insinyur Membuat Kolom BaruLatihan sendiri: Playground SQL