ORACLE SQL – Join Table

Merhaba, SQL yazılarına devam ediyoruz bu yazımızda join konusuna bakacağız. Bir önceki yazıyı okumadıysanız buradan ulaşabilirsiniz.

ORACLE SQL Dersleri – Subqueries

Bundan önceki yazılarımızda hep tek tablo üzerinden işlem yaptık ve konuları inceledik.  SQL dilindeki en önemli konulardan biri Join konusudur. Tabloları birleştirmemize olanak sağlar.

Sorgu ile tabloları birleştirip işlem yapmamızı sağlar.

Aşağıda iki farklı tabloya ait veriler var , tek bir sorgu ile iki tablodaki verileri birleştirebiliriz.

Bir örnek ile anlamaya çalışalı, customers ve orders tablosundan tek sorgu ile verileri getirmeyi deneyelim, Bunu yaparken aynı anda iki tablo kullanacağımız için kolon isimlerinden önce tabloda adını belirtmemz gerekiyor;

SELECT customers.ID, customers.Name, orders.Name, orders.Amount
FROM customers, orders
WHERE customers.ID=orders.Customer_ID
ORDER BY customers.ID;

 

Burada join yapımız where ifade ile sağlanmış.

 

Types of Join:

Veritabanından veritabanına değişmekte olup genel olarak 3 temel join türü vardır bunlar,

  •  INNER JOIN
  •  LEFT JOIN
  •  RIGHT JOIN

 

Inner join, normal join kelimesi ile aynı işlevi yapar. İste sorgu esnasında join yazalım istersek inner join sonuç aynı dönecektir.

Ana mantığı iki tablo arasında eşleşme olduğunda bize eşleşen değerleri döner.

Syntax:

SELECT kolon_ismi
FROM tablo_1 INNER JOIN tablo_2
ON tablo1_kolon-ismi = tablo2_kolon-ismi

 

Yukarıda ki şekilde JOIN anahtar kelimesinin açıklamasını şematize olarak ifade etmiştir.

 

LEFT JOIN:

LEFT JOIN, sağ tabloda eşleşme olmasa bile, sol tablodaki tüm satırları sonuç olarak döndürür.

Bunun anlamı, sağdaki tabloda ON anahtar kelimesinde eşleşme yoksa, birleştirme yine sonuçtaki ilk tablodaki satırları döndürecektir.

Basit şekilde yazım kuaralı,

SELECT table1.column1, table2.column2...
FROM table1 LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
  • OUTER kelimesi opsiyonel olarak kullanılabilir LEFT JOIN yazmak aynı işlemi yapacaktır.

Bir örnek ile anlamaya çalışalım. Aşağıda iki tabloya ait veriler vardır.

Şimdi LEFT  JOIN  kullanarak bir SQL yazalım.

SELECT customers.Name, items.Name 
FROM customers LEFT OUTER JOIN items 
ON customers.ID=items.Seller_id;

  • Belirli bir satır için eşleşme bulunmazsa, NULL döndürülür.

 

About Deniz Parlak

Hi, i’m Security Data Scientist & Data Engineer at My Security Analytics. I have experienced Advance Python, Machine Learning and Big Data tools. Also i worked Oracle Database Administration, Migration and upgrade projects. For your questions [email protected]

Leave a Reply

Your email address will not be published. Required fields are marked *