我有一个表poll_response
,有三列:user_id
,poll_id
,option_id
。
提供任意数量的投票/回复对,如何确定不同user_id
匹配的数量?
因此,假设表的数据如下所示:
user_id | poll_id | option_id
1 1 0
1 2 1
1 3 0
1 4 0
2 1 1
2 2 1
2 3 1
2 4 0
假设我想知道有多少用户回复“1”进行投票2而“0”进行投票3。
在这种情况下,只有用户1匹配,所以答案是:只有一个不同的用户。
但是假设我想知道有多少用户回复“1”进行轮询2而“0”回复进行轮询4。
在这种情况下,用户1和用户2都匹配,所以答案是:有2个不同的用户。
我在构建MySQL查询时遇到了麻烦,特别是考虑到有任意数量的轮询/响应对。我只是尝试将一堆连接链接在一起吗?
答案 0 :(得分:1)
要知道有多少用户回复“1”进行轮询2,将“0”回复进行轮询3。
select count(user_id) from(
select user_id from tblA
where (poll_id=2 and option_id=1) or (poll_id=3 and option_id=0)
group by user_id
having count(user_id)=2
)m