比较Postgres的两个结果

时间:2014-10-13 12:12:36

标签: sql postgresql

我在比较Postgres中的两个结果时遇到了问题。

我有两个表(考虑它们都有主键属性),首先是一个CarWithOwner表,它有两个属性CarName和Owner。第二个表是CarList,其中包含一个属性Name。

从这些表中我想获得拥有CarList表中所有汽车的所有者名称。

我的第一种方法是将人与汽车分组,然后将其与汽车清单进行比较。像这样:

SELECT owner 
from CarWithOwner 
GROUP BY carname, owner 
HAVING carname = ALL(SELECT name from CarList);

但它没有给我正确的结果。你能给我一个解决方案吗?

1 个答案:

答案 0 :(得分:3)

您需要比较值的计数,而不是值本身:

select owner
from carwithowner
group by owner
having count(distinct carname) = (select count(*) from carlist)