【问题标题】:How can I do a union/join in access to 'stack' 2 tables on top of each other while merging two columns如何在合并两列的同时合并/加入访问“堆叠”2个表
【发布时间】:2017-10-06 20:20:50
【问题描述】:

我有 2 个表,其中除了 2 个公共字段外,它们的行彼此不相关。我正在尝试以这样一种方式加入它们,即有 2 个字段合并。

例如:

表 A:

NameA    ID-A    SomefieldA    SomefieldB 
John     101     A-1           B-2
John     200     A-1           B-10
Smith    101     A-10          B-2

表 B:

NameB    ID-B    SomefieldC    SomefieldD
John     101     C-1           D-2
David    2000    C-100         A-10
George   120     C-2           D-20

我想将这些表连接在一起,所以它会是这样的:

表 C:

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

【问题讨论】:

标签: ms-access


【解决方案1】:

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

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

如果要对结果执行左连接,则必须使用子查询,它看起来像这样:

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

【讨论】:

  • 谢谢!如果我想在这个联合上执行左外连接,那会怎样?我将根据名称加入第三张表。
【解决方案2】:

我看到这里没有合并。好吧,应该这样做:

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;

【讨论】:

    猜你喜欢
    • 2016-01-17
    • 2023-02-01
    • 1970-01-01
    • 2020-10-16
    • 2014-03-19
    • 2018-04-21
    • 2019-12-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多