table1 : colonnes A, B, C
table2 : colonnes B, E, F
table3 : colonnes A, C, E
Exemple 1 : jointure de table1 et table2 (une colonne ayant le même nom : B).
Code : SQL
SELECT *
FROM table1
NATURAL JOIN table2;
-- EST ÉQUIVALENT À
SELECT *
FROM table1
INNER JOIN table2
ON table1.B = table2.B;
Exemple 2 : jointure de table1 et table3 (deux colonnes ayant le même nom : A et C).
Code : SQL
SELECT *
FROM table1
NATURAL JOIN table3;
-- EST ÉQUIVALENT À
SELECT *
FROM table1
INNER JOIN table3
ON table1.A = table3.A AND table1.C = table3.C;
Pour utiliser ce type de jointure, il faut donc être certain que toutes les colonnes nécessaires à la jointure ont le même nom dans
les deux tables, mais aussi que les colonnes ayant le même nom sont uniquement celles qui servent à la jointure.
Notez que vous pouvez également réaliser une jointure externe par la gauche avec les jointures naturelles à l'aide de NATURAL
LEFT JOIN.
Jointures sans JOIN
Cela peut paraître absurde, mais il est tout à fait possible de faire une jointure sans utiliser le mot JOIN. Ce n'est cependant
possible que pour les jointures internes.
Il suffit de mentionner les tables que l'on veut joindre dans la clause FROM (séparées par des virgules), et de mettre la condition
de jointure dans la clause WHERE (sans clause ON).
Code : SQL
SELECT *
FROM table1, table2
WHERE table1.colonne1 = table2.colonne2;
-- équivalent à
SELECT *
FROM table1
[INNER] JOIN table2
ON table1.colonne1 = table2.colonne2;
Partie 2 : Index, jointures et sous-requêtes
107/414
www.openclassrooms.com
table2 : colonnes B, E, F
table3 : colonnes A, C, E
Exemple 1 : jointure de table1 et table2 (une colonne ayant le même nom : B).
Code : SQL
SELECT *
FROM table1
NATURAL JOIN table2;
-- EST ÉQUIVALENT À
SELECT *
FROM table1
INNER JOIN table2
ON table1.B = table2.B;
Exemple 2 : jointure de table1 et table3 (deux colonnes ayant le même nom : A et C).
Code : SQL
SELECT *
FROM table1
NATURAL JOIN table3;
-- EST ÉQUIVALENT À
SELECT *
FROM table1
INNER JOIN table3
ON table1.A = table3.A AND table1.C = table3.C;
Pour utiliser ce type de jointure, il faut donc être certain que toutes les colonnes nécessaires à la jointure ont le même nom dans
les deux tables, mais aussi que les colonnes ayant le même nom sont uniquement celles qui servent à la jointure.
Notez que vous pouvez également réaliser une jointure externe par la gauche avec les jointures naturelles à l'aide de NATURAL
LEFT JOIN.
Jointures sans JOIN
Cela peut paraître absurde, mais il est tout à fait possible de faire une jointure sans utiliser le mot JOIN. Ce n'est cependant
possible que pour les jointures internes.
Il suffit de mentionner les tables que l'on veut joindre dans la clause FROM (séparées par des virgules), et de mettre la condition
de jointure dans la clause WHERE (sans clause ON).
Code : SQL
SELECT *
FROM table1, table2
WHERE table1.colonne1 = table2.colonne2;
-- équivalent à
SELECT *
FROM table1
[INNER] JOIN table2
ON table1.colonne1 = table2.colonne2;
Partie 2 : Index, jointures et sous-requêtes
107/414
www.openclassrooms.com
