Bu, Access SQL ile ilgili bir dizi makaleden biridir. Bu makalede FROM yan tümcesinin nasıl yazılacağı açıklanmış ve örnekler kullanılarak bir FROM yan tümcesinde kullanabileceğiniz çeşitli teknikler gösterilmiştir.
Bir SELECT deyiminde, veri kaynaklarını FROM yan tümcesinde belirtirsiniz. FROM yan tümcesi bir JOIN işlemi de içerebilir. İki tablo veya bir tablo ile bir sorgu gibi iki veri kaynağındaki verileri eşleştirip birleştirmek için JOIN işlemini kullanırsınız.
Access SQL’ye genel bakış için bkz. Access SQL: Temel kavramlar, sözlük ve söz dizimi.
Bu makalede
Veri kaynakları belirtme
Bir SELECT deyiminde, FROM yan tümcesi SELECT yan tümcesinin kullanacağı verileri içeren tabloları veya sorguları belirtir.
Belirli bir müşterinin telefon numarasını öğrenmek istediğinizi varsayalım. Bu verinin depolandığı alanı içeren tablonun adı tblCustomer olursa FROM yan tümcesi aşağıdakine benzer:
FROM tblCustomer
Adı köşeli ayraçların içine alabilirsiniz. Ad herhangi bir boşluk veya özel karakter (noktalama işaretleri gibi) içermiyorsa, köşeli ayraçlar isteğe bağlıdır. Adın boşluk veya özel karakterler içermesi durumunda ayraç kullanmalısınız.
İpucu: Boşluk içeren adlar daha kolay okunabilir ve formlarla raporları tasarlarken zamandan tasarruf etmenizi sağlayabilir, ancak SQL deyimleri yazarken daha fazla şey yazmanıza da neden olabilir. Access veritabanınızdaki nesneleri adlandırırken bu gerçeği göz önünde bulundurmalısınız.
Veri kaynakları için yedek ad kullanma
FROM yan tümcenizde bir tablo diğer adı kullanarak bir SELECT deyimindeki bir tabloya farklı bir adla başvurabilirsiniz. Tablo diğer adı, bir sorguda veri kaynağı olarak bir ifadeyi kullanırken veri kaynağına atadığınız veya SQL deyiminin yazılmasını ve okunmasını kolaylaştırmak için kullandığınız bir addır. Bu yöntem, veri kaynağının adı uzunsa veya zor yazılıyorsa, özellikle de farklı tablolarda aynı ada sahip birden çok alan varsa kullanışlı olabilir.
Örneğin, biri tblCustomer diğeri tblOrder adlı iki tablodan gelen ve her ikisi de ID adını taşıyan iki alandan veri seçmek istiyorsanız SELECT yan tümceniz aşağıdaki gibi olabilir:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
FROM yan tümcenizde tablo diğer adlarını kullanarak sorgunun yazımını kolaylaştırabilirsiniz. Tablo diğer adlarını içeren FROM yan tümceniz aşağıdaki gibi olabilir:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Daha sonra, SELECT yan tümcenizde bu tablo diğer adlarını aşağıdaki gibi kullanabilirsiniz:
SELECT [C].[ID], [O].[ID]
Not: Tablo diğer adlarını kullanırken, SQL deyiminizdeki tabloya diğer adı veya tam tablo adını kullanarak başvurabilirsiniz.
İlgili verileri birleştirme
Bir sorgu sonucunda iki veri kaynağındaki kayıt çiftlerini tekli kayıtlar olarak birleştirmek için bir yönteme ihtiyacınız olursa birleştirme işlemi gerçekleştirebilirsiniz. Birleştirme, iki veri kaynağının nasıl ilişkili olduğunu ve bir kaynakta ilgili veri yoksa diğer kaynaktaki verilerin eklenip eklenmeyeceğini belirten bir SQL işlemidir.
İki veri kaynağından alınan bilgileri birleştirmek için bu kaynaklarda ortak olarak bulunan alanda birleştirme işlemi gerçekleştirirsiniz. Bu alanda depolanan değerler eşleşirse, kayıtlardan alınan veriler sonuçlarda birleştirilir.
Verileri birleştirmeye ek olarak, ilgili tablolardan birinde sorguya karşılık gelen bir kayıt yoksa diğer tablodaki kayıtların eklenip eklenmeyeceğini belirtmek için de birleştirme işlemi kullanabilirsiniz.
Örneğin, bir sorguda şu iki tablodaki verileri kullanmak istediğinizi varsayalım: tblCustomer ve tblOrder. İki tabloda da müşterileri tanımlayan CustomerID adlı bir alan var diyelim. tblCustomer tablosundaki her kayıt, tblOrder tablosundaki bir veya daha fazla kayda karşılık gelebilir ve ilgili değerler CustomerID alanındaki değerlere göre belirlenebilir.
Tabloları birleştirip sorgunun tablolardaki kayıtların birleştirmesini ve iki tablodan birinde ilgili kayıt yoksa her iki tablodaki kayıtların dışlanmasını sağlamak istiyorsanız FROM yan tümceniz aşağıdaki gibi görünebilir (burada kolay okunabilmesi için satır sonu eklenmiştir):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
Access’te birleştirme işlemleri bir SELECT deyiminin FROM yan tümcesinde gerçekleşir. İki tür birleştirme vardır: iç birleşim ve dış birleşim. Aşağıdaki bölümlerde bu iki birleştirme türü açıklanmıştır.
İç birleşimler
İç birleşimler, en sık kullanılan birleşim türüdür. İç birleşimli bir sorgu çalıştırıldığında, sorgu sonuçlarına yalnızca birleştirilen tabloların her ikisinde de ortak değere sahip olan kayıtlar dahil edilir.
İç birleşim işlemi aşağıdaki söz dizimine sahiptir (burada okunabilirlik açısından satır sonu eklenmiştir):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
Aşağıdaki tabloda, bir INNER JOIN işleminin farklı bölümleri açıklanmıştır.
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 "<>." |
Dış birleşimler
Dış birleşimler, bir sorguya iki kaynaktaki bilgilerin nasıl birleştirileceğini söylediğinden iç birleşimlere benzer. Aralarındaki fark, dış birleşimlerin ortak değer olmadığında verilerin eklenip eklenmeyeceğini de belirtmesidir. Dış birleşimlerde yön önemlidir: Birleştirmede belirtilen ilk veri kaynağındaki tüm kayıtların ekleneceğini (sol birleştirme denir) ya da birleştirmedeki ikinci veri kaynağında bulunan tüm kayıtların ekleneceğini (sağ birleştirme denir) belirtebilirsiniz.
Dış birleşimin söz dizimi aşağıdaki gibidir:
FROM tablo1 [ LEFT | RIGHT ] JOIN tablo2
ON tablo1.alan1karşılaştırma tablo2.alan2Aşağıdaki tabloda, bir LEFT JOIN ve RIGHT JOIN işlemlerinin farklı bölümleri açıklanmıştır.
Bölüm |
Açıklama |
tablo1, tablo2 |
Kayıtların birleştirileceği tabloların adı. |
alan1, alan2 |
Birleştirilen alanların adı. Alanlar 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 "<>." |
Birleştirme işlemleri hakkında daha fazla bilgi edinmek için Tabloları ve sorguları birleştirme makalesine bakın.