如何在 SQL 中组合以下示例中的列和行,而不在另一个表中不存在的列上提取带有空值的额外行?这应该类似于 SAS 中的 OUTER UNION CORR。
两个表中的 EMP_ID 和 Dept_ID 没有确切的 ID 列表,例如表 A 中的 ID 可能不在表 B 中,反之亦然。
表 A
EMP_ID Dept_ID VISIT_CA_DATE
001 01 5/2/2011
002 02 null
004 03 6/8/2011
表 B
EMP_ID Dept_ID LAST_OUT REASON
001 01 6/1/2011 sick
003 02 7/2/2011 vacation
期待这样的结果 - 所有 EMP_ID 以及相应的访问日期信息和缺席信息。
EMP_ID Dept_ID VISIT_CA_DATE LAST_OUT REASON
001 01 5/2/2011 6/1/2011 sick
002 02 null null null
003 02 null 7/2/2011 vacation
004 03 6/8/2011 null null
对我有用的唯一方法如下。有没有更好的方法来实现这一目标?谢谢!
A LEFT OUTER JOIN B on A.EMP_ID=B.EMP_ID
UNION
B LEFT OUTER JOIN A ON B.EMP_ID=A.EMP_ID