Join İşlemleri

İlişkisel veritabanının en temelinde birden fazla tablo üstünde birlikte işlem yapabilmek yatar. Bu sayede verilerin tekrarlaması önlenmiş olur ve sonuçta veri yönetimi kolaylaşır.

 

Joinler için Tablolarımız

iller tablosu         hava_durumu tablosu
 Join İşlemleri    Join İşlemleri

 

Inner Join

Inner Join, sadece iki tabloda da var olan verileri esas alır; eğer bir tabloda karşılık yoksa, o kaydı hiç ekrana getirmez.

Inner Join ile tüm alanları karşılaştırıp bağlayabilirsiniz; ancak Memo ve OLE Object alanlarını birleştirmek isterseniz hata alırsınız. Bu alanlarla JOIN işlemi yapmayınız.

    Bir sorguda istediğiniz kadar Inner Join kullanabilirsiniz. Böylece sadece iki tabloyu değil; istediğiniz kadar tabloyu aynı anda birbirine bağlayabilirsiniz.

    Inner Join, sadece iki tabloda da var olan verileri alır. Yani eğer tblKisiler tablosundaki bir kişinin tblSiteler tablosunda hiç kaydı olmasaydı yukarıdaki sorguda o kişi hiç seçilmeyecekti ve sonuçta çıkmayacaktı.

SELECT iller.ilad, hava_durumu.durum
FROM iller, hava_durumu
WHERE iller.ilno = hava_durumu.ilno

veya 

SELECT iller.ilad, hava_durumu.durum
FROM iller INNER JOIN hava_durumu ON iller.ilno=hava_durumu.ilno

Join İşlemleri

Left Join

LEFT sözcüğünden önceki tablo soldaki tablo, sonraki tablo sağdaki tablodur.

Inner Join'e oldukça benzese de bu bağlama türünün bir farkı vardır. Inner Join, daha önce de dediğim gibi, sadece iki tabloda da var olan verileri esas alır; eğer bir tabloda karşılık yoksa, o kaydı hiç ekrana getirmez. Ancak LEFT veya RIGHT join 'de istediğiniz yandaki (Left veya Right) tüm veriler ekrana gelir.Tanımı biraz karışık gibi de olsa, birazdan örneklerle daha iyi anlayacaksınız.

Eğer bir sorgu da Left JOIN kullanırsanız,( tabloSOL.alan1 = tabloSAG.alan2  ), sol taraftaki tabloda bulunan (tabloSOL) tüm veriler, sağdaki tabloda olup olmadığına bakılmaksınız ekrana yazılacaktır. Karşılığı bulunanlarda gerekli veri ekranda yazacak olmayanlarda ise <NULL> yazacaktır. 

LEFT joinde soldaki tablodaki tüm değerler listelenirken sağdaki tablodaki değerlerden karşılığı olanlar yazılır, karşılığı olmayanlar yerine NULL yazılır.

SELECT iller.ilad, hava_durumu.durum
FROM iller LEFT JOIN hava_durumu ON iller.ilno=hava_durumu.ilno

Join İşlemleri

Right Join

Eğer bir sorgu da Right JOIN kullanırsanız,( tabloSOL.alan1 = tabloSAG.alan2  ), sağ taraftaki tabloda bulunan (tabloSAG) tüm veriler, soldaki tabloda olup olmadığına bakılmaksınız ekrana yazılacaktır. Karşılığı bulunanlarda gerekli veri ekranda yazacak olmayanlarda ise <NULL> yazacaktır.

RIGHT joinde sağdaki tablodaki tüm değerler listelenirken soldaki tablodaki değerlerden karşılığı olanlar yazılır, karşılığı olmayanlar yerine NULL yazılır.

 

SELECT iller.ilad, hava_durumu.durum
FROM iller RIGHT JOIN hava_durumu ON iller.ilno=hava_durumu.ilno 

Join İşlemleri

 

 

Join İşlemleri

Yorumunuzu Ekleyin
Join İşlemleri Yorumları +4 Yorum
  • MUHJAMMET
    1
    MUHJAMMET
    ÇOK T.EDERİM
    02 Haziran 2010 17:53:32, Çarşamba
  • Emrullah
    1
    Emrullah
    Rigth join ekran ciktisinda bir adet daha satir bulunmasi gerekiyor:
    NULL - Gunesli seklinde.
    13 Mart 2015 00:16:27, Cuma
  • cnytkc
    1
    cnytkc
    Merhaba php de yeniyim bende 2 tablo var ilk tablo üyeler tablosu ikincisi konular ben konularda konu yazar adında bir alan açtım şimdi bu konu yazar alanına üye id kullanarak ekleyen uyenin adını nasıl getirebilirim
    03 Ocak 2016 19:07:22, Pazar
  • Tuğba
    1
    Tuğba
    Right joinde sisli neden yok karşılığı null olmucak mı
    18 Mart 2022 17:39:48, Cuma


Yükleniyor...
Yükleniyor...