用于获取用户条件的答案的SQL查询条件

时间:2016-12-12 06:58:24

标签: mysql sql database

我有一个名为user_answers的表。这是表格的架构。

enter image description here

现在,我想创建一个可以适应不同条件的查询。

例如:

选择问题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)等......

感谢您的回复。

2 个答案:

答案 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