Microsoft Access 查询 - 将两个查询合并为一个
Posted
技术标签:
【中文标题】Microsoft Access 查询 - 将两个查询合并为一个【英文标题】:Microsoft Access Query - Merging two queries into one 【发布时间】:2019-01-30 21:50:33 【问题描述】:使用查询向导,我构建了两个不同的查询,它们具有相似的功能,我试图将它们组合成一个查询。我有两个表(结构相同),我正在匹配以查找重复项:
查询 #1 如下(包括表 1 中的所有记录,并且仅将表 2 中连接字段相等的记录应用于以下所有列):
Match Table 1 Column 3 to Table 2 Column 3
Match Table 1 Column 4 to Table 2 Column 4
Match Table 1 Column 5 to Table 2 Column 5
Match Table 1 Column 7 to Table 2 Column 7
如果表 1 中的所有列都与表 2 中的内容匹配,它将识别重复项(我引入表 2 的第 7 列,它将显示我正在寻找的重复项)。
查询 #2 如下(包括表 1 中的所有记录,并且仅将表 2 中连接字段相等的那些记录应用于以下所有列):
Match Table 1 Column 3 to Table 2 Column 3
Match Table 1 Column 4 to Table 2 Column 4
Match Table 1 Column 5 to Table 2 Column 5
Match Table 1 Column 8 to Table 2 Column 8
我的第二个查询具有相同的 3 列,但最后一列不同。
如果表 1 中的所有这些列都与表 2 中的内容相匹配,它将识别重复项(我引入表 2 列 7/8,它将显示我正在寻找的重复项)。
我想做什么:
为查询添加 OR
语句,以显示第 8 列和第 7 列的匹配项的重复项。例如,如果表 1 第 7 列与表 2 第 7 列匹配或表 1 第 8 列与表 2 第 8 列匹配,则显示重复。
这需要UNION
查询吗?
这是其中之一的查询:
SELECT TABLE1.COLUMN_3, TABLE1.COLUMN_4, TABLE1. COLUMN_7,
TABLE2.COLUMN_7, TABLE1.COLUMN_5
FROM TABLE1
LEFT JOIN TABLE2
ON (TABLE1.COLUMN_7 = TABLE2.COLUMN_7)
AND (TABLE1.COLUMN_3 = TABLE2.COLUMN_3)
AND (TABLE1.COLUMN_4 = TABLE2.COLUMN_4)
AND (TABLE1.COLUMN_5 = TABLE2.COLUMN_5);
【问题讨论】:
我删除了不兼容的数据库标签。只标记您真正使用的数据库(有您声誉的人应该知道这一点)。样本数据和期望的结果也会有很大帮助。 有点难以理解逻辑,但是用 AND 和 OR 嵌套括号没有问题,可以给出你想要的任何东西。如果您想查找重复,也可以使用 EXISTS,如果您只想返回重复的行,则可以使用完全连接。 【参考方案1】:由于表名和列名中有空格,给定的 SQL 将无法运行。 此示例消除了这些空格。
SELECT
Table1.Column3 , Table2.Column3
,Table1.Column4 , Table2.Column4
,Table1.Column5 , Table2.Column5
,Table1.Column7 , Table2.Column7
,Table1.Column8 , Table2.Column8
From Table1
Left Join Table2
On
( Table1.Column3 = Table2.Column3
AND Table1.Column4 = Table2.Column4
AND Table1.Column5 = Table2.Column5
AND ( Table1.Column7 = Table2.Column7
OR Table1.Column8 = Table2.Column8
)
)
【讨论】:
【参考方案2】:创建查询 3;添加 Q1 和 Q2 - 在 F7 上加入它们。这将导致该字段的所有匹配项。
创建查询 4;添加 Q1 和 Q2 - 在 F8 上加入它们。这将导致该字段的所有匹配项。
您现在有 2 个具有这些匹配项的数据集(称为重复项)。然后决定如何呈现/显示。如果您需要它们在单个记录集中 - 将它们写入单个通用临时表。但除此之外,您可以轻松地将它们作为子报告/表单一起呈现。
【讨论】:
以上是关于Microsoft Access 查询 - 将两个查询合并为一个的主要内容,如果未能解决你的问题,请参考以下文章
使用 Exist 保留字 Microsoft Access 的两个更新查询