我需要一个查询,该查询将比较两个表并找到完全匹配的行集。 我有两个桌子
第一张桌子
ID uniqueKey
1 A
2 A
3 A
1 B
2 B
4 C
如果我将另一个表传递了以下数据
ID
1
2
3
然后它应该返回'A'
如果输入表是
ID
1
2
它应该返回'B'
如果输入表为
ID
1
2
3
4
它不应返回任何内容
如果输入表是
ID
1
然后它不应返回任何内容
答案 0 :(得分:2)
我不确定“传递表格”是什么意思,但是您可以按照自己的意愿做:
select t1.uniqueKey -- doesn't seem very unique to me
from table1 t1 left join
table2 t2
on t1.id = t2.id
group by t1.uniqueKey
having count(*) = count(t2.id) and -- all ids in table1 match table2
count(*) = (select count(*) from table2) -- all table2 ids are present
答案 1 :(得分:0)
或者,也可以使用array_agg
select V2 as u_key from
(select array_agg(ID)as V1,unique_key as V2 from t1 group by unique_key) Table1
join
(select array_agg(ID) as V3 from t2) Table2
on Table1.V1= Table2.V3;