SQL Server'da JOINS: Örneklerle Eğitim
JOIN ifadesini kullanarak birden fazla tablodan veri alabiliriz. SQL sunucusunda esas olarak 4 farklı JOINS türü vardır. Tüm JOIN'leri öğreneceğiz SQL Server örneklerle:
- İÇ BİRLEŞTİRME/basit birleştirme
- SOL DIŞ BİRLEŞTİRME/SOL BİRLEŞTİRME
- SAĞ DIŞ BİRLEŞTİRME/SAĞ BİRLEŞTİRME
- TAM DIŞ BİRLEŞTİRME
INNER JOIN
Bu tür SQL sunucusu JOIN'i, birleştirme koşulunun doğru olduğu tüm tablolardan satırları döndürür. Aşağıdaki sözdizimini alır:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Bunu göstermek için aşağıdaki iki tabloyu kullanacağız:
Öğrenci Masası:
Ücret tablosu:
Aşağıdaki komut, SQL Server'da INNER JOIN'i örnekle göstermektedir:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Komut aşağıdakini döndürür:
Ücretini ödeyen öğrencilere şunu söyleyebiliriz. Her iki tabloda da ortak değerlerin olduğu sütun olan kabul sütununu kullandık.
SOL DIŞ KATILMA
Bu birleştirme türü, soldaki tablodaki tüm satırları ve sağdaki tablodaki eşleşen değerlere sahip kayıtları döndürür. Örneğin:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Kod şunu döndürür:
Eşleşen değerleri olmayan kayıtlar, ilgili sütunlarda NULL'larla değiştirilir.
SAĞ DIŞ BİRLEŞTİRME
Bu birleştirme türü, sağdaki tablodaki tüm satırları ve yalnızca soldaki tabloda eşleşen değerlere sahip olanları döndürür. Örneğin:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
OUTER JOINS SQL Server ifadesi aşağıdakileri döndürür:
Yukarıdaki çıktının nedeni, Ücret tablosundaki tüm satırların kabul sütununda eşleştirildiğinde Öğrenciler tablosunda mevcut olmasıdır.
TAM DIŞ BİRLEŞTİRME
Bu birleştirme türü, JOIN koşulunun doğru olmadığı her iki tablodaki tüm satırları NULL değerlerle döndürür. Örneğin:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Kod, FULL OUTER JOINS sorguları için aşağıdaki sonucu döndürür: SQL:






