基于比较同一表中两列之间的多个值来选择数据

时间:2016-11-11 17:20:13

标签: php sql cakephp-3.0

enter image description here

问题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个条件但它可以上升或下降。

1 个答案:

答案 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条件,将其存储在变量中并传入查询。