SQL NATURAL JOIN

Dans le langage SQL, la commande NATURAL JOIN permet de faire une jointure naturelle entre 2 tables. Cette jointure s’effectue à la condition qu’il y ai des colonnes du même nom et de même type dans les 2 tables. Le résultat d’une jointure naturelle est la création d’un tableau avec autant de lignes qu’il y a de paires correspondant à l’association des colonnes de même nom.

A noter : puisqu’il faut le même nom de colonne sur les 2 tables, cela empêche d’utiliser certaines règles de nommages pour le nom des colonnes. Il n’est par exemple pas possible de préfixer le nom des colonnes sous peine d’avoir malheureusement 2 nom de colonnes différents.

Syntaxe

La jointure naturelle de 2 tables peut s’effectuer facilement, comme le montre la requête SQL suivante :

SELECT *
FROM table1
NATURAL JOIN table2

L’avantage d’un NATURAL JOIN c’est qu’il n’y a pas besoin d’utiliser la clause ON.

Exemple

Une utilisation classique d’une telle jointure pourrait être l’utilisation dans une application qui utilise une table utilisateur et une table pays. Si la table utilisateur contient une colonne pour l’identifiant du pays, il sera possible d’effectuer une jointure naturelle.

Table “utilisateur” :

user_iduser_prenomuser_villepays_id
1JérémieParis1
2DamienMontréal2
3SophieMarseilleNULL
4YannLille9999
5LéaParis1

Table “pays” :

pays_idpays_nom
1France
2Canada
3Belgique
4Suisse

Pour avoir la liste de tous les utilisateurs avec le pays correspondant, il est possible d’effectuer une requête SQL similaire à celle-ci:

SELECT *
FROM utilisateur
NATURAL JOIN pays

Cette requête retournera le résultat suivant :

pays_iduser_iduser_prenomuser_villepays_nom
11JérémieParisFrance
22DamienMontréalCanada
NULL3SophieMarseilleNULL
99994YannLilleNULL
15LéaParisFrance

Cet exemple montre qu’il y a bien eu une jointure entre les 2 tables grâce à la colonne “pays_id” qui se trouve dans l’une et l’autre des tables.

Partager