Aracılığıyla paylaş


Kullanarak iç birleşimler

iç birleştirmek olan birleştirmek kullanarak bir karşılaştırma, Katılınan sütunlardaki değerleri karşılaştırılır, işleç.

İç birleşimler ya da başlangıç ISO standart olarak belirtilebilir veya where yan tümce tümce tümce.where yan tümce tümce tümcesinde ISO destekleyen birleştirmek türü budur.İç birleşimler, where yan tümce tümce tümcesinde iç birleşimler stil eski olarak bilinen belirtti.

Aşağıdaki Transact-SQL sorgu ise bir iç birleştirmek örneğidir:

USE AdventureWorks2008R2;
GO
SELECT *
FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
    ON e.BusinessEntityID = p.BusinessEntityID
ORDER BY p.LastName

Bu bir iç birleştirmek eş birleştirmek bilinir.Her iki tabloda bulunan tüm sütunları döndürür ve yalnızca var olan değerine eşit satır döndürür birleşim sütunu.

Eşittir dışındaki İşletmenleri kullanma birleştirir

Ayrıca birleştirmek eşit olmayan iki farklı sütundaki değerleri.Operatörleri ve iç birleşimler için kullanılan yüklemleri eşit olmayan birleştirmeler için kullanılabilir.Kullanılabilir işleçler ve birleşimlerde kullanılabilir yüklemler hakkında daha fazla bilgi için bkz: İfadelerde İşleçleri Kullanma ve Burada (Transact-sql).

Aşağıdaki örnek, daha az kullanır-den (<) ürün satış fiyatlarını bulmak için birleştirmek 718 az fiyat listesi için bu ürünü tavsiye edilir

USE AdventureWorks2008R2;
GO
SELECT DISTINCT p.ProductID, p.Name, p.ListPrice, sd.UnitPrice AS 'Selling Price'
FROM Sales.SalesOrderDetail AS sd
    JOIN Production.Product AS p 
    ON sd.ProductID = p.ProductID AND sd.UnitPrice < p.ListPrice
WHERE p.ProductID = 718;
GO

Sonuç kümesi buradadır.

ProductID Name ListPrice Selling Price

----------- --------------------------- ------------------ -------------

718 HL Road Frame - Red, 44 1431.5000 758.0759

718 HL Road Frame - Red, 44 1431.5000 780.8182

718 HL Road Frame - Red, 44 1431.5000 858.90

(3 row(s) affected)

Eşit değil işlecini kullanarak birleşimler

Eşit olmayan birleştirmek (<>) çok seyrek kullanılır.Genel bir kural, eşit olmayan birleştirmeler yalnızca kullanıldığında anlamlı bir iç birleştirmek.Örneğin, bu değil-eşit Transact-SQL birleştirmek ve iç birleşim en az iki farklı fiyatlara sahip alt kategorileri bulmak için kullanılan daha az $15:

USE AdventureWorks2008R2;
GO
SELECT DISTINCT p1.ProductSubcategoryID, p1.ListPrice
FROM Production.Product p1
    INNER JOIN Production.Product p2
    ON p1.ProductSubcategoryID = p2.ProductSubcategoryID
    AND p1.ListPrice <> p2.ListPrice
WHERE p1.ListPrice < $15 AND p2.ListPrice < $15
ORDER BY ProductSubcategoryID;

Not

The expression NOT column_name = column_name is equivalent to column_name <> column_name.

Aşağıdaki Transact-SQL örnek bir iç birleştirmek ile birlikte eşit olmayan birleştirmek içindeki tüm satırları bulmak için kullandığı ProductVendor tablo hangi iki veya daha fazla satır aynı olduğu ProductID ancak farklı VendorID numaraları (yani, birden fazla satıcı olan ürünler):

USE AdventureWorks2008R2;
GO
SELECT DISTINCT p1.VendorID, p1.ProductID
FROM Purchasing.ProductVendor p1
    INNER JOIN Purchasing.ProductVendor p2
    ON p1.ProductID = p2.ProductID
WHERE p1.VendorID <> p2.VendorID
ORDER BY p1.VendorID