我在比较Postgres中的两个结果时遇到了问题。
我有两个表(考虑它们都有主键属性),首先是一个CarWithOwner表,它有两个属性CarName和Owner。第二个表是CarList,其中包含一个属性Name。
从这些表中我想获得拥有CarList表中所有汽车的所有者名称。
我的第一种方法是将人与汽车分组,然后将其与汽车清单进行比较。像这样:
SELECT owner
from CarWithOwner
GROUP BY carname, owner
HAVING carname = ALL(SELECT name from CarList);
但它没有给我正确的结果。你能给我一个解决方案吗?
答案 0 :(得分:3)
您需要比较值的计数,而不是值本身:
select owner
from carwithowner
group by owner
having count(distinct carname) = (select count(*) from carlist)