Share via


Kullanarak Self-joins

A tablo kendisine bir iç birleştirmek birleştirilebilecek.Aynı tabloda başka kayıtlarla tablodaki kayıtları birleştiren bir sonuç kümesi oluşturmak istediğinizde iç birleştirmek kullanın.Iki kez aynı Sorguda Tablo listesi için , bir tablo diğer ad ad adı en az bir tablo adı örnek için sağladığınız gerekir.Bu tablo diğer ad, sütun tablonun sağ veya sol sürüm veri sunmak olup olmadığını belirlemek query processor yardımcı olur.

Örnekler

C.Kullanarak bir iç birleştirmek birden çok satıcı tarafından sağlanan ürünleri bulmak için

Aşağıdaki örnek bir iç birleştirmek birden fazla satıcı tarafından sağlanan ürünleri bulmak için kullanır.

Bu sorgu, birleştirmek hattınızda ProductVendor tabloyu kendisi ile ProductVendor Tablo içinde iki rolden görünür. Bu roller ayırt etmek için , size gereken ProductVendor iki tablo farklı bir diğer ad ((ingilizce)pv1 ve pv2) FROM yan tümcesinde. Bu diğer ad, sütun adları sorgunun geri kalan nitelemek için kullanılır.Bu bir iç birleştirmek örnektir Transact-SQL Deyim:

USE AdventureWorks;
GO
SELECT DISTINCT pv1.ProductID, pv1.VendorID
FROM Purchasing.ProductVendor pv1
    INNER JOIN Purchasing.ProductVendor pv2
        ON pv1.ProductID = pv2.ProductID
        AND pv1.VendorID <> pv2.VendorID
ORDER BY pv1.ProductID

b.Çalışanları ve bunların yöneticilerini eşleştirmek için kendisiyle birleştirmek işlemini kullanma

Aşağıdaki örnek, bir iç birleştirmek gerçekleştirir HumanResources.Employee Tüm yöneticileri ve onlara rapor çalışanlar listesi oluşturmak için tablo'ı tıklatın.

SELECT MgrTable.LoginID AS ManagerName,EmplTable.ManagerID, 
    EmplTable.LoginID, EmplTable.EmployeeID
FROM HumanResources.Employee AS EmplTable
    JOIN HumanResources.Employee AS MgrTable
        ON EmplTable.ManagerID = MgrTable.EmployeeID
ORDER BY MgrTable.LoginID, EmplTable.LoginID