SQL'de Üç Tabloyu Birleştirme

Sql De Uc Tabloyu Birlestirme



İlişkisel veritabanlarının en önemli özelliklerinden biri, ilgili verileri “tablolar” adı verilen çeşitli bileşenlere ayırma yeteneğidir. Diğer veritabanlarından farklı olarak ilişkisel veritabanları, çeşitli tablolardan veri toplanmasını ve sonuçların anlamlı verilere dönüştürülmesini gerektirir.

Bu, birleştirmelerin işlevselliğinin devreye girdiği yerdir. İlişkisel veritabanlarında birleştirmeler, iki veya daha fazla tablodaki verileri tek bir sonuç kümesinde birleştirmenize olanak tanıyan en yaygın işlemlerden biridir.







Ancak, çoğu birleştirmenin yalnızca iki tabloyu kapsadığını görebilirsiniz. Ancak birleştirmeler hızla üç veya daha fazla tabloya genişleyebilir. Üçten fazla tabloyla çalışırken CTE'lere bakmak daha verimli olabilse de, üç tablo söz konusu olduğunda birleştirmeler çok verimli ve hızlı olabilir.



Bu eğitimde, SQL'de üç tablo içeren bir birleştirme gerçekleştirmek için ihtiyaç duyduğunuz adımların üzerinden geçeceğiz.



Başlarken

Başlamadan önce, sütunları aşağıda gösterildiği gibi olan üç basit tablonuz olduğunu varsayalım:





Tablo 1:
İD | isim | yaş

Tablo 2:
İD | şehir | ülke

Tablo 3:
İD | maaş | konum


Bu düzen, üç tabloyu birleştirmenin nasıl çalıştığını ve bunları bir SQL sorgusu kullanarak nasıl yapılandırabileceğimizi hızlı bir şekilde anlamamızı sağlar.

SQL'de Üç Tabloyu Birleştirme

SQL'de herhangi bir birleştirme gerçekleştirirken, ana bileşen, katılmanız gereken tabloların her birinde ortak bir sütun veya bir dizi sütun tanımlayarak başlar. Daha sonra tabloyu birbirine bağlamak için bu paylaşılan sütunları kullanabilir ve SQL'in verileri mantıklı ve verimli bir şekilde yorumlayıp birleştirmesine izin verebilirsiniz.



SQL'de çeşitli birleştirme türleri olmasına rağmen, ana bileşen tablolardaki benzerliklerdir.

Bu öğretici için, yalnızca üç tablodaki değerlerle eşleşen satırları döndüren bir iç birleşime odaklanacağız.

Önceki tablolar söz konusu olduğunda, aşağıdaki sorguda gösterildiği gibi üç tablo üzerinde bir iç birleştirme gerçekleştirebiliriz:

Tablo1.ad, Tablo2.şehir, Tablo3.maaş SEÇİN
Tablo1'den
İÇ BİRLEŞTİRME Tablosu2
AÇIK Table1.id = Table2.id
İÇ BİRLEŞTİRME Tablosu3
AÇIK Table2.id = Table3.id;


Önceki sorguyu adım adım inceleyelim:

    1. Birincisi, sonuç kümesine dahil etmek istediğimiz sütunları seçmemizi sağlayan SELECT ifadesidir. Bu durumda Tablo 1'deki ad sütunu, Tablo 2'deki şehir sütunu ve Tablo 3'teki maaş sütunuyla ilgileniyoruz.
    2. FROM deyimini kullanarak, küme sütunlarını getirmek istediğimiz hedef tabloları belirtiriz. Bu durumda, Tablo 1'den getiriyoruz.
    3. Ardından INNER JOIN yan tümcesi gelir. Tablo 1'i Tablo 2 ile birleştirmek için bu yan tümceyi kullanırız. ON yan tümcesini, bu durumda kimlik sütunu olan iki tabloyu birbirine bağlayan koşulu belirtmek için de kullanırız.
    4. İkinci INNER JOIN, Tablo 3 ile ilk birleşimdeki sonuç kümesini birleştirmemizi sağlar. ON yan tümcesini kullanarak, ID sütununa göre SQL'e sonuç kümesine ve Tablo 3'e katılmak istediğimizi söyleriz.
    5. Her üç tablodan elde edilen sonuç kümesi, seçilen sütunlara dahil edilir.

Pratik Örnek:

Önceki örnek üç tablonun nasıl birleştirileceğini gösterse de, daha pratik bir örnek alıp Sakila veritabanını kullanalım.

Bu durumda film, kiralama ve envanter tablolarını birleştiriyoruz. Sorgu aşağıdaki gibidir:

Rental.rental_id, Rental.rental_date, film.title, envanter.inventory_id SEÇİN
kiralamadan
Rental.inventory_id = envanter.inventory_id ON envanterine KATILIN
Filme KATILIN envanter.film_id = film.film_id
NEREDE film.başlık = 'GÜN BATIMI YARIŞÇISI' ;


Açıklama:

    1. Bu durumda, kiralama tablosundan kiralama_id, kiralama_tarihi ve envanter_id sütunlarını seçmek için SELECT deyimini kullanırız.
    2. İlk JOIN yan tümcesi, envanter_kimliği sütununu kullanarak kiralama tablosunu envanter tablosuna bağlar.
    3. İkinci JOIN yan tümcesi, film_id sütununu kullanarak ilk birleştirmeden sonuç kümesini film tablosuna birleştirir.
    4. Son olarak, sonuç kümesini yalnızca hedef başlığı içerecek şekilde filtrelemek için WHERE yantümcesini kullanırız.

Ortaya çıkan tablo aşağıdaki gibidir:

Çözüm

SQL'de üç tabloyu birleştirmek, her tabloda paylaşılan bir sütun veya sütun kümesi tanımlamayı ve tabloları birbirine bağlamak için uygun birleştirme türünü (iç, sol, sağ veya tam dış) kullanmayı gerektirir. Bu öğreticide gösterildiği gibi, SQL'de üç tabloyu nasıl birleştireceğinizi anlamalısınız.