微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 MS Access 或 Excel 中连接多个表

如何解决在 MS Access 或 Excel 中连接多个表

我有多个 (3+) Excel 表格(前 3 个表格仅提供第一行用于演示目的)。我想要实现的是显示所有表中的所有行,并在存在共同值的地方加入它们,即我试图模拟 FULL OUTER JOIN。

TBL1

IDno         IDname          d10         d30        datecreated  

12-778        Robetrt         62         72          9/25/2020                          

TBL2

IDno         IDname          result3      datecreated    

12-124        Sam2            text22        9/25/2018                                 

TBL3

IDno         IDname          Area         datecreated    

12-324        Trinton         6.25         9/25/2013                                 

有时不同表之间的 IDno 是相同的,但在大多数情况下它们是不同的。

我做了一个 UNION 查询以返回表中的所有 IDno:

SELECT TBL1.IDno,TBL1.IDname FROM TBL1 UNION SELECT TBL2.IDno,TBL2.IDname FROM TBL2 UNION SELECT TBL3.IDno,TBL3.IDname FROM TBL3;

我将查询命名为 IDs。然后,我想得到一个表格,该表格将显示所有行并合并 IDno 相同的行:

结果

IDno     IDname     d10       d30       result3      Area  

我用过:

SELECT
IDs.IDno,IDs.IDname,TBL1.d10,TBL1.d30,TBL2.result3,TBL3.Area
FROM ((IDs
left join TBL1 on IDs.IDno = TBL1.IDno)
left join TBL2 on TBL1.IDno = TBL2.IDno)
left join TBL3 on TBL1.IDno = TBL3.IDno

UNION

SELECT
IDs.IDno,TBL3.Area
FROM ((IDs
right join TBL1 on IDs.IDno = TBL1.IDno)
right join TBL2 on TBL1.IDno = TBL2.IDno)
right join TBL3 on TBL1.IDno = TBL3.IDno

WHERE 
IDs.IDno IS NULL;

最终结果是带有一些附加行的 LEFT JOINed 表,这些行显示 IDno 和 IDn​​ame,但没有来自 TBL2 或 TBL3 的数据。在这种情况下,我无法弄清楚如何 UNION 左右 JOIN 以实现 FULL OUTER JOIN。它适用于 2 个表,但不适用于 Acess 中的三个或更多。有没有办法在不需要 sql 服务器的情况下在 Excel(Power query)或其他地方连接多个表?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。