如何同时在单个查询中匹配单个表中的多个值

时间:2017-12-21 06:23:26

标签: mysql codeigniter

我想在一次查询中匹配单个查询中的多个值。喜欢我所做的事情。我想将不同问题的值与我已经制作了一组条件的不同答案相匹配,如下面的代码所示。但是这段代码对我不起作用。

SELECT `user_id`
FROM `tb_user_answers`
WHERE   (
`question_id` = '1'
AND `answer_id` = '2'
 )
AND   (
`question_id` = '2'
AND `answer_id` IN(4, 6)
 )
AND   (
`question_id` = '3'
AND `answer_id` IN(8, 9, 10)
 )

我们需要获取那些与这些条件完全匹配的记录。所以我认为我们不能使用OR代替AND,因为我们需要所有条件都应该匹配。

1 个答案:

答案 0 :(得分:0)

为了满足所有标准,您可以使用聚合并为过滤器设置过滤器,以下查询将返回user_id,其中所有这些条件不仅满足单个条件而且满足所有条件。

SELECT `user_id`
FROM `tb_user_answers`
GROUP BY  `user_id`
HAVING SUM(`question_id` = '1' AND `answer_id` = '2') > 0
   AND SUM(`question_id` = '2' AND `answer_id` IN(4, 6)) > 0
   AND SUM(`question_id` = '3' AND `answer_id` IN(8, 9, 10)) > 0