问题ID(1,3,2,3) 回复id(1,6,4,7)
Question_Id Response_Id
1 =>1
3=>6
2=>4
3=>7
我需要从users_response(follow)表中选择那些回答上述所有问题的不同用户,并在response_id(1,6,4,7)中提到与question_id(1,3,2, 3)分别。
结果应该只是'2'。
你能帮助我或给我一些暗示来处理它。任何动态方式,因为可以增加question_id和response_id的计数。就像在这个例子中一样,这里只给出了4个条件但它可以上升或下降。
答案 0 :(得分:1)
SELECT * FROM users_responses WHERE Question_Id = 1 AND Question_Id = 3 AND Question_Id = 2 AND Question_Id = 3 AND ( Question_Id = 1 AND Response_Id = 1 ) OR ( Question_Id = 3 AND Response_Id = 6 AND Response_Id = 7 ) OR ( Question_Id = 2 AND Response_Id = 4 ) GROUP BY user_id;
这将是您的查询,如果只有4,如果有多个,您可以使用Question_Id和Response_Id对创建一个数组。循环遍历此数组以创建where条件,将其存储在变量中并传入查询。