Birden çok birleştirme

SQL'de Verileri Birleştirme

Maham Faisal Khan

Senior Content Developer, DataCamp

Birleştirme üstüne birleştirme

SELECT *
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id

INNER JOIN another_table ON left_table.id = another_table.id;

Not. Kullanım durumuna bağlı olarak ON koşulunda left_table veya right_table kullanılabilir.

SQL'de Verileri Birleştirme

Birleştirme üstüne birleştirme

Dünya liderleri veritabanımızdaki prime_minister_terms tablosu

prime_minister_terms tablosu; iki sütun gösteriyor: başbakan adı ve göreve başlama yılı.

SQL'de Verileri Birleştirme

Önce hangisini birleştirmeli?

SELECT p1.country, p1.continent, 
       president, prime_minister
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country);
| country  | continent     | president               | prime_minister   |
| -------- | ------------- | ----------------------- | ---------------- |
| Egypt    | Africa        | Abdel Fattah el-Sisi    | Mostafa Madbouly |
| Portugal | Europe        | Marcelo Rebelo de Sousa | Luís Montenegro  |
| Pakistan | Asia          | Asif Ali Zardari        | Shehbaz Sharif   |
| India    | Asia          | Droupadi Murmu          | Narendra Modi    |
SQL'de Verileri Birleştirme

Zincirleme birleştirmeler

Önceki slayttaki birleştirme (presidents ve prime_ministers) sonucu, yeni tablo prime_minister_terms ile. Sonuç sütunları: country, continent, president, prime_minister ve pm_start.

SQL'de Verileri Birleştirme

Zincirleme birleştirmeler

-- SQL: iç birleştirmeleri zincirleme
SELECT 
    p1.country, 
    p1.continent, 
    president, 
    prime_minister, 
    pm_start
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country)

INNER JOIN prime_minister_terms as p3 USING(prime_minister);
SQL'de Verileri Birleştirme

Neyi ON ile birleştiriyoruz?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
id alanı üzerinde INNER JOIN diyagramı

Bir sütunda eşleştirirken, sol tablodaki birleştirme alanının sağ tablodaki alanda birden çok eşleşme bulabildiğini gösteren diyagram. Sonuç kümesi, sol tablodaki her id için sağ tabloda eşleşen her kayıt için birden çok satır içerir.

SQL'de Verileri Birleştirme

Birden çok anahtar üzerinde birleştirme

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
id VE date alanları üzerinde INNER JOIN diyagramı

Birden çok birleştirme alanı kullanıldığında dönen kayıt sayısının azalabileceğini gösteren diyagram. Burada iki tabloyu birleştirmek için hem id hem de date kullanılır.

SQL'de Verileri Birleştirme

Hadi pratik yapalım!

SQL'de Verileri Birleştirme

Preparing Video For Download...