Partager via


Utilisation de jointures croisées

Mis à jour : 14 avril 2006

Une jointure croisée qui ne possède pas de clause WHERE permet d'obtenir le produit cartésien des tables impliquées dans la jointure. La taille de l'ensemble de résultats d'un produit cartésien correspond au nombre de lignes de la première table, multiplié par le nombre de lignes de la seconde table. L'exemple suivant présente une jointure croisée Transact-SQL.

USE AdventureWorks;
GO
SELECT p.SalesPersonID, t.Name AS Territory
FROM Sales.SalesPerson p
CROSS JOIN Sales.SalesTerritory t
ORDER BY p.SalesPersonID;

L'ensemble de résultats comprend 170 lignes (17 dans SalesPerson et 10 dans SalesTerritory ; 17 x 10 = 170).

Cependant, si vous ajoutez une clause WHERE, la jointure croisée se comporte comme une jointure interne. Par exemple, les requêtes Transact-SQL suivantes produisent le même ensemble de résultats.

USE AdventureWorks;
GO
SELECT p.SalesPersonID, t.Name AS Territory
FROM Sales.SalesPerson p
CROSS JOIN Sales.SalesTerritory t
WHERE p.TerritoryID = t.TerritoryID
ORDER BY p.SalesPersonID;

-- Or

USE AdventureWorks;
GO
SELECT p.SalesPersonID, t.Name AS Territory
FROM Sales.SalesPerson p
INNER JOIN Sales.SalesTerritory t
ON p.TerritoryID = t.TerritoryID
ORDER BY p.SalesPersonID;

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

Historique des modifications

Version Historique

14 avril 2006

Contenu modifié :
  • Modification des exemples pour utiliser des tables différentes.