Ortak bir alanda eşleşen değerler olduğunda her iki tablonun kayıtlarını bir araya getirir.
Söz dizimi
FROM tablo1 INNER JOIN tablo2 ON tablo1.alan1karşılaştırma tablo2.alan2
INNER JOIN işleminin bölümleri:
Bölüm |
Açıklama |
tablo1, tablo2 |
Kayıtların birleştirileceği tabloların adı. |
alan1, alan2 |
Birleştirilen alanların adı. Alanlar sayısal değilse, aynı veri türü olmalı ve aynı türde veriler içermelidir, ancak alanların aynı ada sahip olması gerekmez. |
karşılaştırma |
Herhangi bir ilişkisel karşılaştırma işleci: "=," "<," ">," "<=," ">=" veya "<>." |
Notlar
INNER JOIN işlemini herhangi bir FROM yan tümcesinde kullanabilirsiniz. En sık kullanılan birleşim türü budur. Her iki tabloda da bulunan bir alanda eşleşen değerler olduğunda iç birleşimler iki tablonun kayıtlarını bir araya getirir.
Departmanlar ve Çalışanlar tablolarında, her departmandaki tüm çalışanları seçmek için INNER JOIN kullanabilirsiniz. Bununla birlikte, çalışan içermeyenler de dahil olmak üzere tüm departmanları ya da bir departmana bağlı olmasalar bile tüm çalışanları seçmek için LEFT JOIN veya RIGHT JOIN işlemi kullanarak bir dış birleşim oluşturabilirsiniz.
Not veya OLE Nesnesi verisi içeren alanları birleştirmeyi denerseniz, bir hata oluşur.
Benzer türdeki iki sayısal alanı birleştirebilirsiniz. Örneğin, OtomatikSayı ve Uzun alanları benzer tür olduğundan birleştirilebilirler. Ancak, Tek ve Çift alan türlerini birleştiremezsiniz.
Aşağıdaki örnekte, CategoryID alanındaki Categories ve Products tablolarını birleştirme işlemi gösterilir:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Yukarıdaki örnekte, CategoryID birleştirilen alan olmakla birlikte, SELECT deyiminde bulunmadığından sorgu çıktısına dahil edilmez. Birleştirilmiş alanı eklemek için alan adını SELECT deyimine, bu durumda, Categories.CategoryID öğesine ekleyin.
Ayrıca birkaç ON yan tümcesini bir JOIN deyiminde bağlamak için şu söz dizimini kullanabilirsiniz:
SELECT alanlar
FROM tablo1 INNER JOIN tablo2 ON tablo1.alan1karşılaştırmatablo2.alan1 AND ON tablo1.alan2karşılaştırmatablo2.alan2) OR ON tablo1.alan3karşılaştırmatablo2.alan3)];Aşağıdaki örneği kullanarak JOIN deyimlerini iç içe de koyabilirsiniz:
SELECT alanlar
FROM tablo1 INNER JOIN (tablo2 INNER JOIN [( ]tablo3 [INNER JOIN [( ]tablox [INNER JOIN ...)] ON tablo3.alan3karşılaştırmatablox.alanx)] ON tablo2.alan2karşılaştırmatablo3.alan3) ON tablo1.alan1karşılaştırmatablo2.alan2;INNER JOIN deyiminin içinde LEFT JOIN veya RIGHT JOIN bulunabilir ancak LEFT JOIN veya RIGHT JOIN deyimlerinin içinde INNER JOIN bulunamaz.