Comment : créer des jointures externes
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.
Notes
Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.
Pour créer une jointure externe
Créez la jointure, soit automatiquement, soit manuellement. Pour plus d'informations, consultez Comment : joindre automatiquement des tables ou Comment : joindre manuellement des tables.
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.
Notes
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)