首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL中组合具有vary列和vary关系的两个表

如何在SQL中组合具有vary列和vary关系的两个表
EN

Stack Overflow用户
提问于 2011-08-06 04:29:48
回答 2查看 13.8K关注 0票数 1

如何在SQL中组合以下示例中的列和行,而不提取其他表中不存在的列上具有空值的额外行?这应该类似于SAS中的外部UNION CORR。

这两个表中的EMP_ID和Dept_ID没有确切的ID列表,例如,表A中的ID可能不在表B中,反之亦然。

表A

代码语言:javascript
复制
EMP_ID        Dept_ID          VISIT_CA_DATE  
001            01               5/2/2011                   
002            02               null                     
004            03               6/8/2011 

表B

代码语言:javascript
复制
EMP_ID         Dept_ID        LAST_OUT        REASON  
001             01             6/1/2011        sick  
003             02             7/2/2011        vacation

像这样的预期结果-带有相应的visit_date信息和缺少信息的所有EMP_ID。

代码语言:javascript
复制
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  

对我来说唯一有效的方法是下面的。有没有更好的方法来实现这一点?谢谢!

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2011-08-06 04:43:25

你可以做一个FULL OUTER JOIN。它基本上是一个LEFT JOIN和一个RIGHT JOIN的组合。如下所示:

代码语言:javascript
复制
SELECT  COALESCE(A.Emp_Id,B.Emp_Id) Emp_Id, 
        COALESCE(A.Dept_Id,B.Dept_Id) Dept_Id, 
        A.VISIT_CA_DATE,
        B.LAST_OUT,
        B.REASON
FROM TableA A
FULL OUTER JOIN TableB B
ON A.Emp_Id = B.Emp_Id AND A.Dept_Id= B.Dept_Id
票数 3
EN

Stack Overflow用户

发布于 2011-08-06 04:49:48

代码语言:javascript
复制
SELECT t.EMP_ID, t.Dept_Id, A.VISIT_CA_DATE, B.LAST_OUT, B.REASON
FROM (
SELECT EMP_ID, Dept_Id FROM A
UNION
SELECT EMP_ID, Dept_Id FROM B
) t
LEFT JOIN A ON t.EMP_ID = A.EMP_ID
LEFT JOIN B ON t.EMP_ID = B.EMP_ID

尽管它看起来和你做的差不多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6962264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档