访问查询?

时间:2009-04-29 20:53:23

标签: sql ms-access

我在MS-Access,U和R中有两个表。我已将它们连接在一起并希望比较两个字段。但是,因为两者都有X标签来比较我得到的X行。正如您在ID 4和2中看到的那样,每个表中都有两个标签,它们都是相同的,但是由于我的查询,我得到了四行,因为它比较了所有组合。我确实将“唯一值”设置为“是”。我怎样才能使这项工作只返回以下两行示例。

ID  U Tag1   R Tag2  Comp
1   100XX7   100XX7  SAME
2   11646L   11644   DIFFERENT
2   11646L   1X05X   DIFFERENT
2   15650    11644   DIFFERENT
2   15650    1X05X   DIFFERENT
3   5981X    598X0   DIFFERENT
4   19103    19103   SAME
4   19103    19X95   DIFFERENT
4   19X95    19103   DIFFERENT
4   19X95    19X95   SAME

2 个答案:

答案 0 :(得分:1)

您是否正在寻找以下内容:

SELECT u.ID, u.Tag, r.ID, r.Tag
FROM u INNER JOIN r ON (u.ID = r.ID) AND (u.Tag = r.Tag)

UNION ALL

SELECT u.ID, u.Tag, r.ID, r.Tag
FROM u LEFT JOIN r ON (u.ID = r.ID) AND (u.Tag = r.Tag)
WHERE r.Tag Is Null

第一部分显示匹配的标签,第二部分(在Union All之后)显示u中未在r中找到的标签。

答案 1 :(得分:0)

添加

GROUP BY id, U.Tag1, R.Tag2, (Comp? perhaps if you need that in your output)

子句到你现在使用的任何查询:)