Types de jointures
| Nom | Commentaires |
|---|---|
| JOIN |
Synonyme de INNER JOIN
|
| INNER JOIN |
Type par défaut, synonyme de JOIN
Seules les lignes correspondant au critère de jointure dans les deux tables sont renvoyées. |
| OUTER JOIN |
Désigne soit LEFT JOIN, RIGHT JOIN et FULL JOIN
|
| LEFT JOIN |
Les lignes de la première table (table de gauche) de la clause FROM sont aussi renvoyées.
|
| RIGHT JOIN |
Les lignes de la seconde table (table de droite) de la clause FROM sont aussi renvoyées.
|
| FULL JOIN |
A la fois LEFT JOIN et RIGHT JOIN.
|
| NATURAL JOIN |
A utiliser lorsque les noms des colonnes des tables jointes sont identiques.
select empno, job, e.deptno, dname
from emp e
join dept d on e.deptno=d.deptno;
Equivalent à :
select empno, job, deptno, dname
from emp e
natural join dept d;
Noter que si on n'utilise pas NATURAL JOIN, il faut préciser e.deptno ou d.deptno dans la clause SELECT
|
Jointures sur 3 tables et plus
Voir https://codingstatus.com/sql-join-3-tables/
-- jointure sur 3 tables
SELECT
e.empno, e.ename, e.deptno,
d.dname, d.loc,
e.sal,
s.grade, s.losal, s.hisal
FROM emp e
JOIN dept d
ON e.deptno= d.deptno
JOIN salgrade s
ON e.sal between s.losal and s.hisal;
-- 3 tables, autre syntaxe
SELECT e.ename, e.sal, e.deptno, d.dname, s.grade, s.losal, s.hisal
FROM emp e, dept d, salgrade s
WHERE
e.sal BETWEEN s.losal AND s.hisal
AND e.deptno = d.deptno;