Menü

Birden fazla tablo üzerinde sorgular

4 Kasım 2017 - SQL
Birden fazla tablo üzerinde sorgular

Veritabanında sorgulama yaparken birden fazla tablo üzerinde işlem yapmamız gereken sorgu olacaktır bunu yapmak için de izlememiz gereken yol, tablo birleştirmedir. Bunu da JOIN ile yapıyoruz. Tabi bu işlemi yapmamız için de tablolar arası ilişki olması gerekiyor. Çünkü ilişkili olmayan iki tabloyu birleştirmek anlamsızca olur.

Örnek olarak

Filmler” ve “Türler” i içeren iki tablomuz olsun ve biz bu iki tabloyu birleştirerek sorgular yazalım.

INNER JOIN : 2 tablo için de boş verileri, yani tabloda TurId’si olan fakat diğerinde olmayan verileri temizler ve göstermez.

 

Aşağıdaki örnek sorgulamada filmler ve türler tablosunu birleştirerek. Filmlerdeki Tür İD ile türler tablosundaki id ler eşit olan sonuçlar alındı. Biz isteğe göre son kısıma where ile koşul belirtebilirdik. Mesela film id’ si 1 olan kayıtları almak için ek olarak “WHERE filmler.id=1” diyerek sql sorguyu şartlandırabilirdik.

SELECT filmler.ad,turler.ad FROM filmler INNER JOIN turler on filmler.turID=turler.id;

sql

LEFT JOIN: İlk (Filmler) tablosu için tüm satırları, ikinci tabloda(türler) eşleşen satırları döndürür. Eşleşme olmadığı zaman da sağdaki sonuç NULL olur.

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

 

veritabanı

RIGHT JOIN: RIGHT JOIN anahtar sözcüğü, sağdaki tablodan (tablo2) tüm satırları, soldaki tabloda (tablo1) eşleşen satırları döndürür. Eşleşme olmadığında sol tarafta sonuç NULL olur.

SELECT *
FROM filmler
RIGHT JOIN turler 
ON filmler.ad=turler.ad;

Sorgusu ile iki tablodaki tüm alanlar gelirken. Filmler tablosundaki değerler “NULL” olduğuna dikkat edin.

veritabanı

FULL JOIN: Sol tablodaki (tablo1) ve sağdaki tablodaki (tablo2) tüm satırları döndürür.

Her iki tablo için de boş olan değerler gösterilir.

Aynı mantıkla 2’den fazla tablo üzerinde de sorgulama yapabilirsiniz sadece dikkat etmeniz gereken nokta ana tablonuz ve hangi tablolar üzerinden hangi özelliklere erişmek istediğinizdir.

Görüşlerinizi bildirirseniz sevinirim. İyi çalışmalar.

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir