SELECT ... FROM Tab1 [LEFT|RIGHT|FULL] OUTER JOIN Tab2
ON Tab1.col = Tab2.col
Oracle propose une syntaxe supplémentaire via le produit cartésien :
SELECT ... FROM Tab1, Tab2
WHERE Tab1.col = Tab2.col (+)
SELECT *
FROM etudiant E LEFT OUTER JOIN diplome D ON E.dip_id = D.dip_id;
etud_num | etud_nom | etud_prenom | etud_adresse | etud_naissance | dip_id | dip_id | dip_nom | dip_niveau | dip_discipline | prof_id
----------+----------+-------------+---------------------------+----------------+--------+--------+---------+------------+----------------+---------
20000001 | Martin | Jacques | Résidence de la pommeraie | 1995-01-01 | 1 | 1 | Licence | L3 | Informatique | 3
20000002 | Martin | Pierre | Résidence de la pommeraie | 1995-10-21 | 1 | 1 | Licence | L3 | Informatique | 3
20000003 | Dalton | Joe | Pénitencier fédéral | 1865-04-01 | | | | | |
20000004 | Dalton | Jack | Pénitencier fédéral | 1866-07-04 | | | | | |
20000005 | Dalton | William | Pénitencier fédéral | 1867-11-28 | | | | | |
20000006 | Dalton | Averell | Pénitencier fédéral | 1868-12-25 | | | | | |
(6 rows)
SELECT *
FROM etudiant E FULL OUTER JOIN diplome D ON E.dip_id = D.dip_id;
etud_num | etud_nom | etud_prenom | etud_adresse | etud_naissance | dip_id | dip_id | dip_nom | dip_niveau | dip_discipline | prof_id
----------+----------+-------------+---------------------------+----------------+--------+--------+---------+------------+----------------+---------
20000001 | Martin | Jacques | Résidence de la pommeraie | 1995-01-01 | 1 | 1 | Licence | L3 | Informatique | 3
20000002 | Martin | Pierre | Résidence de la pommeraie | 1995-10-21 | 1 | 1 | Licence | L3 | Informatique | 3
20000003 | Dalton | Joe | Pénitencier fédéral | 1865-04-01 | | | | | |
20000004 | Dalton | Jack | Pénitencier fédéral | 1866-07-04 | | | | | |
20000005 | Dalton | William | Pénitencier fédéral | 1867-11-28 | | | | | |
20000006 | Dalton | Averell | Pénitencier fédéral | 1868-12-25 | | | | | |
| | | | | | 2 | Master | M2 | Informatique | 1
(7 rows)