我有一张这样的table:
ID | Type
----------
1 | Web
1 | App
2 | Web
2 | Web
3 | App
我想得到的ID只有'网络'的类型。我试过这个:
SELECT id FROM tbl
GROUP BY 1
HAVING COUNT(DISTINCT type) = 1
但是这给了我所有的id,不管类型是不是“web”。
我的预期结果是:
ID | Type
----------
2 | Web
我有一张这样的table:
ID | Type
----------
1 | Web
1 | App
2 | Web
2 | Web
3 | App
我想得到的ID只有'网络'的类型。我试过这个:
SELECT id FROM tbl
GROUP BY 1
HAVING COUNT(DISTINCT type) = 1
但是这给了我所有的id,不管类型是不是“web”。
我的预期结果是:
ID | Type
----------
2 | Web
5条答案
按热度按时间fslejnso1#
可以使用聚合:
ui7jx7zq2#
我们可以在这里使用exists逻辑:
演示
ds97pgxw3#
你可以试着用
not exists
演示bksxznpy4#
你可以用
SELECT id, count(*) as total FROM table_name WHERE type = 'Web' GROUP BY type HAVING total = 1)
q3qa4bjr5#
试着像下面我刚刚编辑了你的答案添加了一个where子句