Partager via


Utilisation d'auto-jointures

Il est possible de joindre une table sur elle-même dans une auto-jointure. Par exemple, vous pouvez utiliser une jointure réflexive pour rechercher les produits fournis par plusieurs fournisseurs.

Comme cette requête effectue une jointure de la table ProductVendor avec elle-même, la table ProductVendor joue deux rôles. Pour distinguer ces rôles, vous devez donner deux noms d'alias à la table ProductVendor (pv1 et pv2) dans la clause FROM. Ces noms d'alias qualifient les noms de colonne dans le reste de la requête. Cet exemple présente l'instruction Transact-SQL de jointure réflexive :

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

Voir aussi

Concepts

Utilisation d'opérateurs dans les expressions

Autres ressources

WHERE (Transact-SQL)
SELECT (Transact-SQL)
Opérateurs (Transact-SQL)
Exemples SELECT (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005