Partager via


Comment le Concepteur de requêtes et de vues représente des jointures (Visual Database Tools)

s’applique à : SQL Server

Si des tables sont jointes, les outils de concepteur de requêtes et de vues (Visual Database Tools) représentent la jointure graphiquement dans le volet Diagramme (Visual Database Tools) et à l’aide de la syntaxe SQL dans le volet SQL (Visual Database Tools).

Volet Diagramme

Dans le volet Diagramme, le Concepteur de requêtes et de vues affiche une ligne de jointure entre les colonnes de données impliquées dans la jointure. Le Concepteur de requêtes et de vues affiche une ligne de jointure pour chaque condition de jointure. Par exemple, l’illustration suivante montre une ligne de jointure entre deux tables jointes :

Diagramme de la ligne de jointure montrant la relation entre deux tables.

Si des tables sont jointes à l’aide de plusieurs conditions de jointure, le Concepteur de requêtes et de vues affiche plusieurs lignes de jointure, comme dans l’exemple suivant :

Diagramme des tables jointes à l’aide de plusieurs conditions de jointure.

Si les colonnes de données jointes ne sont pas affichées (par exemple, le rectangle représentant la table ou l’objet structuré par table est réduit ou la jointure implique une expression), le Concepteur de requêtes et de vues place la ligne de jointure dans la barre de titre du rectangle représentant la table ou l’objet structuré par table.

La forme de l’icône au milieu de la ligne de jointure indique comment les tables ou les objets structurés par table sont joints. Si la clause de jointure utilise un opérateur autre que égal à (=), l’opérateur apparaît dans l’icône de ligne de jointure. Le tableau suivant répertorie les icônes qui apparaissent dans la ligne de jointure.

Icône de connexion de ligne Descriptif
Jointure interne (créée à l’aide du signe égal = ).
Jointure interne basée sur l’opérateur « supérieur à » >.
Jointure externe dans laquelle toutes les lignes de la table représentées à gauche sont incluses, même si elles n’ont pas de correspondances dans la table associée.
Jointure externe dans laquelle toutes les lignes de la table représentées à droite sont incluses, même si elles n’ont pas de correspondances dans la table associée.
Jointure externe complète dans laquelle toutes les lignes des deux tables sont incluses, même si elles n’ont pas de correspondances dans la table associée.

Les symboles sur les extrémités de la ligne de jointure indiquent le type de jointure. Le tableau suivant répertorie les types de jointures et les icônes affichées aux extrémités de la ligne de jointure.

Icône sur les extrémités de la ligne de jointure Type de jointure
Joint un à un.
Jointure un à plusieurs.
Le Concepteur de requêtes et de vues ne peut pas déterminer le type de jointure. Cette situation se produit le plus souvent lorsque vous avez créé une jointure manuellement.

Volet SQL

Une jointure peut être exprimée de plusieurs façons dans une instruction SQL. La syntaxe exacte dépend de la base de données que vous utilisez et de la façon dont vous avez défini la jointure.

Les options de syntaxe pour joindre des tables sont les suivantes :

  • JOIN qualificateur pour la FROM clause. Les mots clés INNER et OUTER spécifient le type de jointure. Cette syntaxe est standard pour ANSI 92 SQL.

    Par exemple, si vous joignez les tables publishers et pub_info en fonction de la colonne pub_id de chaque table, l’instruction SQL résultante peut ressembler à ceci :

    SELECT * FROM publishers
    INNER JOIN pub_info ON publishers.pub_id = pub_info.pub_id;
    

    Si vous créez une jointure externe, les mots LEFT OUTER ou RIGHT OUTER apparaissent à la place du mot INNER.

  • WHERE la clause compare les colonnes des deux tables. Une WHERE clause s’affiche si la base de données ne prend pas en charge la JOIN syntaxe (ou si vous l’avez entrée vous-même). Si la jointure est créée dans la WHERE clause, les deux noms de table apparaissent dans la FROM clause.

    Par exemple, l’instruction suivante joint les tables publishers et pub_info.

    SELECT * FROM publishers, pub_info
    WHERE publishers.pub_id = pub_info.pub_id;