使用Postgres。
我有用户,有物品。项目具有“类型”列。我正在尝试获取一个用户列表,其中包含项目类型不为空的项目,这些“非空”项的计数正好为1.
所需查询:
select *
from users
join items
where items.type IS NOT NULL
and the count of (items.type IS NOT NULL) == 1
如果我能提供更多信息,请告诉我。
提前致谢!
答案 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等等。