3

特定の方法で (フィルターに基づいて) いくつかの質問に回答したユーザーのみを選択する必要があるプロジェクトがあります。

フィルターテーブル(フィルター)はこんな感じ

   question |   answer  

   Q1       |    A  
   Q2       |    B 

ユーザーテーブル(回答)は次のようになります

user | question | answer  

  1  |    Q1    |    A  
  1  |    Q2    |    D  
  2  |    Q1    |    A  
  2  |    Q2    |    B 

フィルターに一致するユーザーのみをユーザー テーブルから選択するにはどうすればよいですか?
私は試した

"SELECT user FROM answers WHERE (question = Q1 AND answer = A) 
             AND (question = Q2 AND answer = B)" 

動作しません-空の結果が得られます。ありがとうございました。

4

3 に答える 3

3

クエリでは、存在しないデータを取得するよう求めています。両方の組み合わせを持つユーザーを取得しようとしています。

これを試して

SELECT user FROM answers WHERE (question = 'Q1' AND answer = 'A') 
         OR (question = 'Q2' AND answer = 'B') 
于 2012-12-05T05:31:08.660 に答える
2

これを試して:

Select 
DISTINCT(userId)
from user_table ut
inner join filtertable ft on (ut.question=ft.question and ut.answer=ft.answer)
于 2012-12-05T04:41:43.203 に答える
2

これを試して

select answers.user
from filter, answers
where filter.question=answers.question and filter.answer=answers.answer
group by answers.user having count(answers.question)=2

また

select user
from answers
where user not in 
(select distinct a.user from answers a, filter f 
where a.question=f.question and a.answer!=f.answer)
于 2012-12-05T05:00:31.400 に答える