我有一个包含多行结果的表格,我希望能够搜索多个值,但只能找到一个唯一ID
我不确定如何解释它,但是说我有一个分配了多个项目的用户。例如,我希望能够搜索分配了item 1
和item 3
的用户列表,并返回该用户ID以获取其信息。
示例表:
╔════╦══════╦══════╗
║ ID ║ USER ║ ITEM ║
╠════╬══════╬══════╣
║ 1 ║ 3 ║ 1 ║
║ 2 ║ 5 ║ 12 ║
║ 3 ║ 3 ║ 3 ║
║ 4 ║ 1 ║ 4 ║
╚════╩══════╩══════╝
将user 3
同时归为item 1
和item 3
我甚至不知道从哪里开始。有任何想法吗??如果需要,我可以尝试添加更多信息,但不确定是什么。
答案 0 :(得分:2)
这样的事情应该可以胜任:
SELECT *
FROM example
WHERE item IN (1,3)
GROUP BY user
HAVING COUNT(item) = 2
有关类似的内容,请参阅Get all entries from Table B which have a relation to multiple entries (given list) from Table A。
答案 1 :(得分:0)
您可以使用group by
和having
执行此操作。一般SQL是:
select user
from table t
group by user
having sum(case when item = 1 then 1 else 0 end) > 0 and
sum(case when item = 3 then 1 else 0 end) > 0;
having
子句中的每个条件都会计算与1
或3
匹配的行数。 > 0
指定每个值都需要存在。