使用查询向导,我构建了两个不同的查询,它们具有相似的功能,试图将它们合并为一个查询。我有两个要匹配的表(结构相同)以查找重复项:
查询#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);
答案 0 :(得分:2)
由于表名和列名中的空格,给定的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
)
)
答案 1 :(得分:0)
创建查询3;添加Q1和Q2-将它们加入F7。这将导致该字段的所有匹配项。
创建查询4;添加Q1和Q2-将它们加入F8。这将导致该字段的所有匹配项。
您现在拥有2个具有这些匹配项的数据集(称为重复项)。然后决定如何显示/显示。如果您在单个记录集中需要它们-将它们写入单个公共临时表中。但是,否则,您可以轻松地将它们一起显示为子报表/表单。