Udostępnij za pośrednictwem


Za pomocą wewnętrzne sprzężenia

łączyć wewnętrzne jest łączyć, w których wartości w kolumnach, że jest dołączony są porównywane za pomocą operator porównania.

W standardzie ISO sprzężenia wewnętrzne może być określony w obu FROM lub klauzula WHERE.Jest to jedyny typ łączyć, które obsługuje ISO w klauzula WHERE.Sprzężenia wewnętrzne określone w klauzula WHERE, są znane jako cyfry sprzężeń wewnętrznych.

Poniżej Transact-SQL Kwerenda jest przykładem łączyć wewnętrzne:

USE AdventureWorks;
GO
SELECT *
FROM HumanResources.Employee AS e
    INNER JOIN Person.Contact AS c
    ON e.ContactID = c.ContactID
ORDER BY c.LastName

łączyć wewnętrzne, to jest znany jako łączyć równoważne.Zwraca wszystkie kolumna w obu tabelach i zwraca tylko te wiersze, dla których nie ma wartość równą kolumna łączyć.

Łączy używając operatorów innych niż równe

Można również połączyć wartości w dwóch kolumnach, które nie są równe.Ten sam operatorów i predykaty używane dla sprzężenia wewnętrzne mogą być używane dla sprzężenia nie równości.Aby uzyskać więcej informacji na temat dostępnych operatorów i predykatów, które mogą być używane w sprzężeniu zobacz Używanie operatorów w wyrażeniach i WHERE (języka Transact-SQL).

W poniższym przykładzie użyto mniej - niż ()<) łączyć, aby znaleźć ceny sprzedaży produktu 718 które są mniejsze niż cena katalogowa, zalecane dla tego produktu.

USE AdventureWorks;
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

Here is the result set.

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)

Przyłącza się za pomocą operator równości nie

(Nie równe łączyć<>) jest rzadko używana. Ogólną zasadą łączyć nie równe sensu tylko wtedy, gdy użyto samosprzężenie.Na przykład tego nie — wartość Transact-SQL łączyć i samosprzężenie potrzebne są używane do znajdowania podkategorii, które mają co najmniej dwa różne ceny mniej niż $15:

USE AdventureWorks;
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;

Uwaga

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

Poniżej Transact-SQL przykładzie łączyć nie równe w połączeniu z samosprzężenie do znalezienia wszystkich wierszy w ProductVendor Tabela, w której dwie lub więcej wierszy mają taki sam ProductID ale różnych VendorID cyfry (to znaczy, produkty, które mają więcej niż jednego dostawcy):

USE AdventureWorks;
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