如何将两个以上的Microsoft Access表合并到一个表中?

时间:2012-03-20 02:10:19

标签: ms-access ms-access-2010

假设我有10个表,每个表N都有一个ID和一个ValueN。 我想将所有这些组合成一个表,其中包含以下内容:

ID Value1 Value2 Value3 ...

ID是唯一的,但每个表可以包含任意数量的记录,因此结果行可以是:

001 3.1 Null 4.6 ...

我知道如果只有2个表,如何进行这个简单的查询。但是不知道比较10个表中的ID值的最佳方法。

1 个答案:

答案 0 :(得分:3)

假设您有3个表(或任意数量的表)

Table1:          Table2:           Table3
ID  Value1       ID   Value2       ID   Value3
1   A            1    AAA          1    111
2   B            2    BBB          2    222
3   C            5    EEE          3    333
                                   4    444
                                   5    555

您可以使用这样的查询来确保从所有表中获取所有可能的数据:

SELECT U.ID,
       Table1.Value1,
       Table2.Value2,
       Table3.Value3
FROM   (((SELECT ID FROM Table1
          UNION
          SELECT ID FROM Table2
          UNION
          SELECT ID FROM Table3) AS U
         LEFT JOIN Table1 ON U.ID=Table1.ID)
        LEFT JOIN Table2 ON U.ID=Table2.ID)
       LEFT JOIN Table3 ON U.ID=Table3.ID; 

结果是:

ID    Value1    Value2     Value3
1     A         AAA        111
2     B         BBB        222
3     C                    333
4                          444
5               EEE        555    

基本上,它只是每个表上LEFT JOIN的连续,所有表都加入了所有可能ID的联合:

SELECT ID FROM Table1
UNION
SELECT ID FROM Table2
UNION
SELECT ID FROM Table3