Temelleri katılın.

Birleşimleri'ni kullanarak, tablolar arasındaki mantıksal ilişkileri bağlı iki veya daha fazla tablodan veri alabilirsiniz.Joins indicate how Microsoft SQL Server should use data from one table to select the rows in another table.

A birleşim koşulu tarafından bir sorguda iki tablo ile ilişkili bir şekilde tanımlar:

  • Her sütun belirten tablo birleşimi için kullanılacak.Bir yabancı anahtar BIR genel birleştirmek koşulunu belirtir tablo ve diğeri de anahtarının tablo.

  • Bir mantıksal işleç belirtme (örneğin, = veya <>) sütun değerleri karşılaştırarak kullanılacak.

Iç birleşimler KIMDEN ya da belirtilen veya WHERE yan tümceleri.Dış birleşimler KIMDEN belirtilen yan tümce yalnızca.Birleşim koşulu WHERE ile birleştirmek ve HAVING FROM yan tümcesinde başvurulan temel tablolar seçili satırları denetlemek için koşullar'ı arayın.

birleştirmek belirtme FROM yan tümce yardımcı ayrı bunları bir WHERE yan tümcesinde belirtilen diğer arama koşullarını gelen koşulları ve birleşimlerin belirtmek için önerilen yöntemdir.Bir basit ISO FROM yan tümce birleştirmek sözdizimi aşağıdaki gibidir:

FROM first_table join_type second_table [ON (join_condition)]

join_type ne tür bir birleştirmek yapılır belirtir: an inner, outer, or cross join.join_condition defines the predicate to be evaluated for each pair of joined rows.FROM yan tümce birleştirmek belirtiminin bir örnek şudur:

FROM Purchasing.ProductVendor JOIN Purchasing.Vendor
     ON (ProductVendor.VendorID = Vendor.VendorID)

Bu birleştirmek kullanarak basit bir deyim şudur:

SELECT ProductID, Purchasing.Vendor.VendorID, Name
FROM Purchasing.ProductVendor JOIN Purchasing.Vendor
    ON (Purchasing.ProductVendor.VendorID = Purchasing.Vendor.VendorID)
WHERE StandardPrice > $10
  AND Name LIKE N'F%'
GO

Select bölümleri þirket adý F harfi ile başladığı için bir şirket tarafından sağlanan herhangi bir birleşimi ile ilgili ürün ve tedarikçi bilgileri verir ve ürünün birden çok 10 TL fiyatıdır.

Tek bir sorguda başvurulan birden çok tablo, tüm sütun başvuruları belirli olması gerekir.Önceki örnekte, hem ProductVendor ve Vendor tablonuz adlı bir sütun VendorID. Sorguda başvurulan iki veya daha çok tablo arasında yineleniyor herhangi bir sütun adı tablo adı ile tam gerekir.Tüm başvurular Vendor Örnek sütunlarda nitelenir.

Sorguda kullanılan iki veya daha fazla tablodaki bir sütun adı yineleniyor, başvuruları tablo adıyla tam olarak sahip değilsiniz.Bu işlem, önceki örnekte gösterilir.Bu tür bir deyim bazen olmadığından sağlanan her tablonun belirtmek için hiçbir şey bilmek zordur sütun.Tüm sütunlar tablo adlarını nitelenir, sorguyu okunabilirliğini artırıldı.Özellikle tablo adları kendilerini veritabanı ve sahibine adlarıyla belirtilmiş gerekir, tablo diğer adları, kullanılıyorsa, okunabilirliğini daha artırıldı.Aşağıda aynı örnek, tablo diğer adları atanan Okunabilirliği artırmak için sütunları Tablo diğer adları tam, ve:

SELECT pv.ProductID, v.VendorID, v.Name
FROM Purchasing.ProductVendor pv JOIN Purchasing.Vendor v
    ON (pv.VendorID = v.VendorID)
WHERE StandardPrice > $10
    AND Name LIKE N'F%'

Önceki örnek birleştirmek koşullarını FROM içinde belirtilen yan tümce, kendisi için tercih edilen yöntemdir.Aşağıdaki sorgu aynı içeren birleşim koşulu WHERE yan tümcesinde belirtilen:

SELECT pv.ProductID, v.VendorID, v.Name
FROM Purchasing.ProductVendor pv, Purchasing.Vendor v
WHERE pv.VendorID = v.VendorID
    AND StandardPrice > $10
    AND Name LIKE N'F%'

Seçim listesi için bir birleştirmek, birleştirilen tablolardaki tüm sütunların veya tüm alt küme küme sütunlar başvuruda bulunabilir.Seçim listesi, her tablonun sütunlarından içermesi gerekmez.Örneğin, üç tablo birleştirmek, yalnızca bir tablo için üçüncü bir tablo diğer tablonun birinden köprüsüne kullanılabilir ve ikinci tablo sütunlarından hiçbiri seçme listesinde başvurulacak var.

birleştirmek koşulu genellikle ancak gibi diğer yüklemler (=) eşitlik karşılaştırmalar, diğer karşılaştırma veya ilişkisel işleçler, belirtilebilir.Daha fazla bilgi için bkz: İfadelerde İşleçleri Kullanma ve WHERE (Transact-SQL).

Ne zaman SQL Server birleştirmeler, işler sorgu alt yapısı, birleştirmek işlemi en verimli yöntem (dışında birkaç olasılıktan) seçer. Çeşitli birleşimler fiziksel yürütülmesini birçok farklı en iyi duruma getirmeleri kullanabilirsiniz ve bu nedenle güvenilir öngörülen edemiyor.

Sütunların içinde kullanılan bir birleşim koşulu aynı ada sahip veya aynı veri türünde olması gerekli değildir.Ancak, veri türleri aynı değilse, bunlar uyumlu olması veya gerekir türleri olması, SQL Server örtülü olarak dönüştürebilirsiniz. Örtülü olarak veri türlerine dönüştürülemez, birleştirmek koşulu açıkça CAST işlevini kullanarak veri türüne dönüştürmeniz gerekir.Örtülü ve açık dönüştürme hakkında daha fazla bilgi için bkz: Veri türü dönüştürme (Veritabanı Altyapısı).

Sorguların çoğu birleştirmek kullanarak (başka bir sorgu içinde iç içe geçmiş bir sorgu) bir alt sorgu kullanma yazılmış ve çoğu alt sorgular birleştirmeler yazılmış.Alt sorgular hakkında daha fazla bilgi için bkz: Temelleri alt sorgu.

Not

Doğrudan tabloları katılamaz. ntext, text, veya image sütunlar. Bununla birlikte, tablolar dolaylı olarak, birleştirilebilecek ntext, text, veya image SUBSTRING kullanarak sütunlar'ı tıklatın. Örneğin, SELECT * FROM t1 birleştirmek t2 ON SUBSTRING(t1. textcolumn1, 20) SUBSTRING (t2. = textcolumn1, 20) tablolardaki her metin sütununun ilk 20 karakteri iki tablo bir iç birleştirmek gerçekleştirir. T1 and T2.Ayrıca, başka bir olasılık, karşılaştırma ntext veya text Örneğin, bir WHERE yan tümce ile sütunların uzunlukları karşılaştırmak için iki tablo sütunlarından şöyledir: WHERE DATALENGTH(p1.pr_info) = DATALENGTH(p2.pr_info)