Jointures

Types de jointures

NomCommentaires
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;

Quizz jointures

Table utilisé pour le quizz sur les jointures