SQL:选择关系计数== 1的用户

时间:2011-09-07 03:05:24

标签: sql

使用Postgres。

我有用户,有物品。项目具有“类型”列。我正在尝试获取一个用户列表,其中包含项目类型不为空的项目,这些“非空”项的计数正好为1.

所需查询:

select *
from users
join items
where items.type IS NOT NULL
and the count of (items.type IS NOT NULL) == 1

如果我能提供更多信息,请告诉我。

提前致谢!

2 个答案:

答案 0 :(得分:4)

select users.id, count(items.type)
from users
join items on items.user_id = user.id
where items.type IS NOT NULL
group by users.id
having count(items.type) = 1

答案 1 :(得分:0)

无论你的方言是什么 - 你需要把你的两张桌子联系起来。之一:

table a JOIN table b on some field(s)

OR

WHERE some fields in table a = some field(s) in table b

另外 - 考虑如何关联表格 - 完全匹配,所有a和唯一匹配的b等等。