FULL OUTER JOIN

与左外连接和右外连接一样,完整外连接将返回两个表中的匹配行。 但是,完全外连接还会返回两个表中的不匹配行。

假设您要查找所有员工及其所有项目。 您希望看到当前未负责项目的员工以及未分配员工的任何项目。 以下查询将返回名称大于 "S" 的所有员工的列表及其分配的项目编号:

SELECT EMPNO, LASTNAME, PROJNO
     FROM CORPDATA.EMPLOYEE FULL OUTER JOIN CORPDATA.PROJECT
           ON EMPNO = RESPEMP
     WHERE LASTNAME > 'S';

由于没有未分配员工的项目,因此查询将返回与左外连接相同的行。 结果如下。

EMPNO LASTNAME PROJNO
000020 THOMPSON PL2100
000060 STERN MA2110
000100 SPENSER OP2010
000170 YOSHIMURA -
000180 SCOUTTEN -
000190 WALKER -
000250 SMITH AD3112
000280 SCHNEIDER -
000300 SMITH -
000310 SETRIGHT -
200170 Yamamoto -
200280 施瓦茨 -
200310 斯普林格 -
200330 -