Ms access QueryDistinct返回5个字段,但如果1个字段不是distinct的,但与某个数字匹配,则我希望在结果集中使用该数字

Ms access QueryDistinct返回5个字段,但如果1个字段不是distinct的,但与某个数字匹配,则我希望在结果集中使用该数字,ms-access,distinct,Ms Access,Distinct,表1 表2 att_id name tel a1 Joe 123456 a2 Tom 456789 a3 mary 444444 a4 sue 333333 我希望每个att_id有一行,其中组id为12。但问题是。如果该与会者的团体记录为5红色,则我希望看到该记录 即 att_id a1不在列表中,因为它在组12中有一个项目,这是正确的 结果: group_id desc att_id 5 red a1 10

表1

表2

att_id name tel
a1       Joe  123456
a2       Tom  456789
a3       mary  444444
a4       sue   333333
我希望每个att_id有一行,其中组id为12。但问题是。如果该与会者的团体记录为5红色,则我希望看到该记录

att_id a1不在列表中,因为它在组12中有一个项目,这是正确的

结果:

group_id desc  att_id
5        red     a1
10       blue    a1
12       orange  a1
6        green   a2
5        red     a2
10       blue    a3
6        green   a3
5        red     a4
10       blue    a4
6        green   a4
我的问题是这样的:

选择不同的姓名、电话号码 从表1内部连接表1上的表2.Att_ID=表2.Att_ID 其中table1.Att_ID不在表2中,请从table2.Group_ID=12的表2中选择Att_ID

这可以将表1中具有表2中的组id 12的记录排除在外。我不知道如何查看返回的记录以确定其中是否有“红色”组,但仍然只有一条记录返回该att_id,只是有一个col表示表1中有红色组记录

很抱歉,不知道如何清楚地表达这一点。

在红色列中使用DLookup似乎有效:

a2  tom  456789  red
a3  mary 444444
a4  sue  333333  red
SELECT 
    att_id, 
    [name], 
    tel, 
    DLookup("[desc]", "table2", "att_id=""" & att_id & """ AND [desc]=""red""") AS red
FROM table1
WHERE att_id NOT IN (SELECT att_id FROM table2 WHERE group_id=12)