Partager via


Comment : créer des jointures externes

Mise à jour : novembre 2007

Par défaut, le Concepteur de requêtes et de vues crée une jointure interne entre des tables. Pour inclure, dans le jeu de résultats, des lignes de données qui n'ont pas de correspondances dans la table jointe, vous pouvez créer une jointure externe.

Lorsque vous créez une jointure externe, l'ordre d'affichage des tables dans l'instruction SQL (c.-à-d. telles qu'elles apparaissent dans le volet SQL) est important. La première table que vous ajoutez devient la table « de gauche » et la seconde la table « de droite ». (En revanche, l'ordre d'apparition des tables dans le volet Schéma importe peu.) Lorsque vous spécifiez une jointure externe droite ou gauche, vous faites référence à l'ordre dans lequel les tables ont été ajoutées à la requête et à celui dans lequel elles apparaissent dans l'instruction SQL du volet SQL.

Remarque :

Les boîtes de dialogue et commandes de menu qui s'affichent peuvent différer de celles décrites dans l'aide selon vos paramètres actifs ou votre édition. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour créer une jointure externe

  1. Créez la jointure, soit automatiquement, soit manuellement. Pour plus d'informations, consultez Comment : joindre automatiquement des tables ou Comment : joindre manuellement des tables.

  2. Sélectionnez la ligne de jointure dans le volet Schéma, puis à partir du menu Concepteur de requêtes, choisissez Sélectionner toutes les lignes de <nom_table>, en sélectionnant la commande qui ajoute la table dont vous voulez inclure les lignes supplémentaires.

    • Choisissez la première table pour créer une jointure externe gauche.

    • Choisissez la seconde table pour créer une jointure externe droite.

    • Choisissez les deux tables pour créer une jointure externe entière.

      Remarque :

      Certaines bases de données, et notamment Oracle, ne prennent pas en charge les jointures externes entières.

Lorsque vous spécifiez une jointure externe, le Concepteur de requêtes et de vues modifie la ligne de jointure pour indiquer qu'il s'agit d'une jointure externe.

En outre, il modifie l'instruction SQL du volet SQL pour refléter la modification du type de jointure, comme l'illustre l'instruction suivante :

SELECT employee.job_id, employee.emp_id,
   employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON 
    employee.job_id = jobs.job_id

Dans la mesure où une jointure externe comprend des lignes sans correspondance, vous pouvez l'utiliser pour trouver des lignes qui ne respectent pas les contraintes de clé étrangère. Pour ce faire, créez une jointure externe, puis ajoutez une condition de recherche afin de rechercher les lignes dans lesquelles la colonne de clé primaire de la table à l'extrême droite a la valeur null. Dans l'exemple, la jointure externe ci-dessous trouve des lignes de la table employee qui ne possèdent pas de lignes correspondantes dans la table jobs :

SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs 
   ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)

Voir aussi

Référence

Joindre, boîte de dialogue

Autres ressources

Interrogation avec des jointures