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 | 黄 | - |