Utilisation des jointures
Les conditions de jointure peuvent être spécifiées dans les clauses FROM ou WHERE, mais il est recommandé de le faire dans les clauses FROM. Les clauses WHERE et HAVING peuvent également contenir des conditions de recherche afin de filtrer par la suite les lignes sélectionnées par les conditions de jointure.
Les jointures peuvent être classées en catégories de la manière suivante :
- Jointures internes (opération de jointure typique qui utilise certains opérateurs de comparaison tels que = ou <>). Ces jointures comprennent les équi-jointures et les jointures naturelles.
Les jointures internes utilisent un opérateur de comparaison afin d'assurer la correspondance des lignes de deux tables basées sur des valeurs dans les colonnes communes de chaque table. Par exemple, l'extraction de toutes les lignes dont le numéro d'identification des étudiants est identique dans les tables students et courses. - Jointures externes. Les jointures externes peuvent être des jointures externes gauches, droites ou complètes.
Lorsqu'elles sont spécifiées dans la clause FROM, les jointures externes sont spécifiées à l'aide d'un des ensembles de mots clés suivants :- LEFT JOIN ou LEFT OUTER JOIN
L'ensemble de résultats d'une jointure externe gauche comprend toutes les lignes de la table de gauche spécifiée dans la clause LEFT OUTER et pas uniquement celles qui correspondent dans les colonnes jointes. Lorsqu'une ligne de la table de gauche n'a pas de correspondance dans la table de droite, la ligne de l'ensemble de résultats associée comprend des valeurs NULL pour toutes les colonnes de la liste de sélection provenant de la table de droite. - RIGHT JOIN ou RIGHT OUTER JOIN
Une jointure externe droite est le contraire de la jointure externe gauche. Toutes les lignes de la table de droite sont retournées. Des valeurs NULL sont retournées pour la table de gauche chaque fois qu'une ligne de la table de droite n'a pas de ligne correspondante dans la table de gauche. - FULL JOIN ou FULL OUTER JOIN
Une jointure externe complète renvoie toutes les lignes des tables de gauche et de droite. Chaque fois qu'une ligne n'a pas de correspondance dans une autre table, les colonnes de la liste de sélection de l'autre table comportent des valeurs NULL. Lorsqu'il existe une correspondance entre les tables, la ligne de l'ensemble de résultats tout entière contient des valeurs de données des tables de base.
- LEFT JOIN ou LEFT OUTER JOIN
- Jointures croisées
Les jointures croisées renvoient toutes les lignes de la table de gauche Chaque ligne de la table de gauche est combinée à toutes les lignes de la table de droite. Les jointures croisées sont également appelées produits cartésiens.
Voici, par exemple, une jointure interne récupérant les employés qui sont également des commerciaux :
USE AdventureWorks;
GO
SELECT e.EmployeeID
FROM HumanResources.Employee AS e
INNER JOIN Sales.SalesPerson AS s
ON e.EmployeeID = s.SalesPersonID
Les tables ou les vues de la clause FROM peuvent être spécifiées dans n'importe quel ordre avec une jointure interne ou externe complète. Toutefois, l'ordre des tables ou des vues s'avère important dans le cas des jointures externes gauches ou droites. Pour plus d'informations sur l'ordre des tables dans les jointures externes gauches ou droites, consultez Utilisation de jointures externes.
Pour plus d'informations sur l'utilisation des différents types de jointures, consultez les rubriques suivantes :
- Utilisation de jointures internes
- Utilisation de jointures externes
- Utilisation de jointures croisées
- Utilisation d'auto-jointures
- Jointure de trois tables ou plus
Voir aussi
Concepts
Principes de base des jointures
Valeurs NULL et jointures
Utilisation d'opérateurs dans les expressions
Autres ressources
Opérateurs (Transact-SQL)
CAST et CONVERT (Transact-SQL)
SELECT (Transact-SQL)