首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在合并两列时联合/连接访问“堆栈”2表

如何在合并两列时联合/连接访问“堆栈”2表
EN

Stack Overflow用户
提问于 2017-10-06 20:20:50
回答 2查看 40关注 0票数 0

除了两个公共字段外,我还有两个表,它们之间的行不相关。我试图加入他们这样的方式,有两个字段合并。

例如:

表A:

代码语言:javascript
复制
NameA    ID-A    SomefieldA    SomefieldB 
John     101     A-1           B-2
John     200     A-1           B-10
Smith    101     A-10          B-2

表B:

代码语言:javascript
复制
NameB    ID-B    SomefieldC    SomefieldD
John     101     C-1           D-2
David    2000    C-100         A-10
George   120     C-2           D-20

我想把这些桌子连在一起,这样会是这样的:

表C:

代码语言:javascript
复制
Name    ID    Somefield A    SomefieldB    SomefieldC    SomefieldD
John    101   A-1            B-2           (null)         (null)
John    200   A-1            B-10          (null)         (null)
Smith   101   A-10           B-2           (null)         (null)
John    101   (null)         (null)         C-1           D-2
David   2000  (null)         (null)         C-100         A-10
George  120   (null)         (null)         C-2           D-20
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-06 20:30:20

这只是一个简单的联合查询。您需要在两个表中提供所有字段。

代码语言:javascript
复制
SELECT NameA, [ID-A] As ID, SomefieldA, SomefieldB, Null As SomefieldC, Null As SomefieldD
FROM TableA
UNION ALL
SELECT NameB, [ID-B], Null As SomefieldA, Null As SomefieldB, SomefieldC, SomefieldD
FROM TableB

如果要对结果执行左联接,则必须使用子查询,它将如下所示:

代码语言:javascript
复制
SELECT *
FROM (    
    SELECT NameA, [ID-A] As ID, SomefieldA, SomefieldB, Null As SomefieldC, Null As SomefieldD
    FROM TableA
    UNION ALL
    SELECT NameB, [ID-B], Null As SomefieldA, Null As SomefieldB, SomefieldC, SomefieldD
    FROM TableB
) AS UQuery
LEFT JOIN TableC ON TableC.ID = UQuery.ID
票数 0
EN

Stack Overflow用户

发布于 2017-10-06 20:30:31

我看不出有什么东西在合并。嗯,这应该可以:

代码语言:javascript
复制
select name, id, field_a, field_b, null as field_c, null as field_d from a
union all
select name, id, null as field_a, null as field_b, field_c, field_d from b;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46613414

复制
相关文章

相似问题

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