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.

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.

 

Deniz Parlak

Hi, I'm a Computer Engineering student in Dumlupınar University.I will graduate next year. I did an internship TurkNet Telecominication Company in 2018 June- 2018 September. I had experience Linux/Unix system, SQL Server Management , SSRS, Mysql Database Management,Troubleshooting performance issues in Linux. I also interested Oracle database and technologies. I want to work as Oracle DBA after my University. I am practicing Unix, Exadata, Orace Cloud, Oracle RAC, Dataguard, EBS, Oracle BI and etc and i hope the articles will be helpful. Any questions, or support please write email deniz.parlak@yahoo.com

Leave a Reply

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