我有一个名为user_answers的表。这是表格的架构。
现在,我想创建一个可以适应不同条件的查询。
例如:
选择问题1405上回答为0的所有用户或 3问题1628.
它也可以像
一样过滤选择问题1405上回答为0的所有用户 AND 3问题1628.
我试图在stackoverflow中搜索类似的查询,并找到了这个sql query to select record having same id but different value in two columns。我试图实现它,但它不能容纳它只能满足AND的OR条件。
我也尝试使用下面的查询,我认为可能会有效,但不会返回任何结果。
select * from user_answers
where
(user_id = user_id AND question_id= 1627 AND answer = 5)
AND (user_id = user_id AND question_id= 1626 AND answer = 0) ;
上面的查询有什么问题吗?或者我可以尝试任何方法吗?
PS:它不仅限于一种情况。它可以是条件的组合。 (Q1:A1)和(Q2:A2)或(Q3:A3)等......
感谢您的回复。
答案 0 :(得分:2)
这可以使用GROUP BY
来解决。
案例OR
:
SELECT user_id
FROM user_answers
WHERE condition1 OR condition2
GROUP BY user_id
案例AND
:
SELECT user_id
FROM user_answers
WHERE condition1 OR condition2
GROUP BY user_id
HAVING count(*) = 2
答案 1 :(得分:0)
从user_answers中选择*,其中question_id = 1405,answer = 0或question_id = 1405,answer = 0 groupby user_id