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

问题描述 投票:1回答:1

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

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,因为我们需要所有的条件都应该匹配。

mysql codeigniter
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.