我在Access中有两个表,一个包含ID(非唯一)和一些名称,一个包含ID(非唯一)和Location。我想返回第三个表,其中只包含在名称或位置中出现多次的元素的ID。
表1
ID Name
1 Max
1 Bob
2 Jack
表2
ID Location
1 A
2 B
基本上在此设置中,它应仅返回ID 1,因为1在表1中出现两次:
ID
1
我试图在表上进行JOIN然后应用COUNT但没有出现。
提前致谢!
答案 0 :(得分:0)
Simple Group By和Having子句应该可以帮助你
select ID
From Table1
Group by ID
having count(1)>1
union
select ID
From Table2
Group by ID
having count(1)>1
答案 1 :(得分:0)
以下是我认为可以在MS Access中使用的一种方法:
(select id
from table1
group by id
having count(*) > 1
) union -- note: NOT union all
(select id
from table2
group by id
having count(*) > 1
);
MS Access不允许union
子句中的union all
/ from
。它也不支持full outer join
。请注意,union
将删除重复项。
答案 2 :(得分:0)
根据您的描述,您不需要连接表来查找重复记录,如果您的表格是您上面提供的,只需使用:
With A
as
(
select ID,count(*) as Times From table group by ID
)
select * From A where A.Times>1
答案 3 :(得分:-1)
我不确定我已经了解了您已经尝试过的查询,但这应该可行:
select table1.ID
from table1 inner join table2 on table1.id = table2.id
group by table1.ID
having count(*) > 1
或者,如果您在一个表中有ID,而在另一个表中没有
select table1.ID
from table1 full outer join table2 on table1.id = table2.id
group by table1.ID
having count(*) > 1