Mysql INNER JOIN İşlemi

Programlama Dilleri bölümünde yer alan bu konu hortLak tarafından paylaşıldı.

  1. hortLak

    hortLak c ε ή κ

    INNER JOIN İşlemi
    Ortak bir alanda eşleşen değerler olduğunda iki tablonun kayıtlarını birleştirir.

    Sözdizimi

    PHP:
    FROM tablo1 INNER JOIN tablo2 ON tablo1.alan1 karşılaştırma tablo2.alan2   
    <b>INNER JOIN</b>
    işleminin bölümleri şunlardır:

    tablo1, tablo2: İçinden kayıtların birleştirileceği tabloların adıdır.
    alan1, alan2: Birleştirilen alanların adıdır. Alanlar sayısal değilse, aynı veri türünde olmalı ve aynı türde veriler içermelidir, ancak alanların aynı ada sahip olmaları gerekmez.
    karşılaştırma: Herhangi bir karşılaştırma işlecidir: "=," "<," ">," "<=," ">=," or "<>."


    Uyarılar

    INNER JOIN işlemini herhangi bir FROM yan tümcesinde kullanabilirsiniz. Bu, en sık kullanılan birleştirme türüdür. İç birleşimler, iki tabloda ortak olan bir alanda eşleşen değerler olduğunda her iki tablonun kayıtlarını birleştirirler.

    INNER JOIN'i, Bölümler ve Çalışanlar tablolarında, bölümlerdeki tüm çalışanları seçmek için kullanabilirsiniz. Buna karşılık, tüm bölümleri (bölüme atanmış çalışan olmasa bile) veya tüm çalışanları (herhangi bir bölüme atanmamış olsa bile) seçmek için, bir dış birleşim oluşturmak üzere LEFT JOIN veya RIGHT JOIN işlemini kullanabilirsiniz.

    Not veya OLE Nesnesi verileri içeren alanları birleştirmeyi denerseniz bir hata oluşur.

    Benzer türdeki herhangi iki sayısal alanı birleştirebilirsiniz. Örneğin, benzer türlerde olduklarında OtomatikSayı ve Uzun alanlarını birleştirebilirsiniz. Ancak, Tek ve Çift türündeki alanları birleştiremezsiniz.

    Aşağıdaki örnek, Kategoriler ve Ürünler tablolarını KategoriNo alanına göre nasıl birleştirebileceğinizi gösterir:


    PHP:
    SELECT KategoriAdi,Urunadi 
    FROM Kategoriler INNER JOIN Urunler 
    ON Kategoriler
    .KategoriNo Urunler.KategoriNo;  
    Önceki örnekte KategoriNo, birleştirilen alandır ancak SELECT deyiminde yer almadığı için sorgu sonuçlarında bulunmaz. Birleştirilen alanı bulundurmak için, alan adını SELECT deyiminde yazın (örneğimizde Kategoriler.KategoriNo).

    Aşağıdaki sözdizimini kullanarak, JOIN deyimi içinde çok sayıda ON yan tümcesini de bağlayabilirsiniz:

    PHP:
    SELECT alanlar 
    FROM tablo1 INNER JOIN tablo2  
    ON tablo1
    .alan1 karşılaştırma tablo2.alan1 AND  
    ON tablo1.alan2 karşılaştırma tablo2.alan2) OR  
    ON tablo1.alan3 karşılaştırma tablo2.alan3)];  

    Aşağıdaki sözdizimini kullanarak içiçe JOIN deyimleri de oluşturabilirsiniz:

    PHP:
    SELECT alanlar 
    FROM tablo1 INNER JOIN  
    (tablo2 INNER JOIN [( ]tablo3  
    [INNER JOIN [( ]tablox [INNER JOIN ...)]   
    ON tablo3.alan3 karşılaştırma tablox.alanx)]  
    ON tablo2.alan2 karşılaştırma tablo3.alan3)   
    ON tablo1.alan1 karşılaştırma tablo2.alan2;

    Bir LEFT JOIN veya bir RIGHT JOIN bir INNER JOIN içinde içiçe yer alabilir ancak bir INNER JOIN bir LEFT JOIN veya RIGHT JOIN içinde yer alamaz.


    Kolay Gelsin