gpt4 book ai didi

ms-access - 在 MS Access 2003 中合并三个表

转载 作者:行者123 更新时间:2023-12-03 07:01:01 35 4
gpt4 key购买 nike

我在 Access 2003 中有三个查询,需要将它们合并到一个查询中。并非所有记录都存在于所有三个表中,因此我想我想要类似完整外连接的东西。

查询 1 字段:记录号码、姓氏、名字、分中心

查询2字段:记录号码、姓氏、名字、个案工作人员

查询3字段:记录号码、姓氏、名字、医生

我需要能够显示:

记录号码、姓氏、名字、个案 worker 、医生、分中心

但是,目前我可以练习如何在两个查询之间使用左联接,然后与右联接并集,但不知道如何将其扩展到三个查询。

有什么想法/建议吗?

最佳答案

怎么样:

SELECT a.[Record number], a.surname, a.firstname, 
t1.subcentre, t2.[case worker], t3.doctor
FROM
(((SELECT [Record number], surname, firstname FROM T1
UNION
SELECT [Record number], surname, firstname FROM T2
UNION
SELECT [Record number], surname, firstname FROM T3) As A
LEFT JOIN T1 ON A.[Record number]=T1.[Record number])
LEFT JOIN T2 ON A.[Record number]=T2.[Record number])
LEFT JOIN T3 ON A.[Record number]=T3.[Record number]

在查询中使用 UNION 而不是 UNION ALL 会创建一个从所有三个表中获取的[记录号]、姓氏、名字的唯一列表。然后可以使用派生表来 LEFT JOIN 到其他三个表。 LEFT JOIN 确保包含派生表中的所有记录。

与通常的 SQL 一样,还有其他类似的方法可以做到这一点。对于非常大的文件,上述方法会很慢,但除非您有 Jet/ACE 后端以外的其他东西,否则您不太可能注意到任何延迟。

例如,对于 SQL Server 后端,您将使用传递查询和 t-sql 语法。对于 MySQL 后端,我认为当您超越一个 UNION 语句时,您必须使用直通查询。

关于ms-access - 在 MS Access 2003 中合并三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11175227/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com