2017-12-21 6 views
1

1回のクエリで複数の値を一致させたい。私がやったことのように。私はあなたが下のコードで見ることができる条件のグループを作った異なる答えと異なる質問の値を一致させたい。このコードは私のために働いていません。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) 
) 

これらの条件と完全に一致するレコードを取得する必要があるという強制があります。私はすべての条件を一致させる必要があるので、ANDの代わりにORを使用することはできないと思います。

答えて

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 
+1

ありがとうM Khalid Junaidそれは私のために働いています:) –

関連する問題