1

プロフィールの回答の表は次のとおりです。

profile_id | answer_id
----------------------
1                1
1                4
1               10

以下は、世論調査の回答者による回答のリストを含む表です。

user_id | answer_id
-------------------
1            1
1            9
2            1
2            4
2           10
3           14
3           29

回答が (6,9) だけでなく (1,10) にもあったユーザーのリストを返したいと思います。基本的には、プロファイル 1 に一致するすべての回答です。

この選択クエリを作成するにはどうすればよいですか?

次のことを試しましたが、どうやらグループ化の仕組みがよくわかりません。

SELECT DISTINCT  [user_id]
FROM             [user_question_answers] a
GROUP BY         a.[user_id]
HAVING           a.[answer_id] IN (6,9)
AND              a.[answer_id] IN (1,10)

編集: user_id 1 のみを返す

4

1 に答える 1

2

あなたのクエリは近いです。. .

SELECT           [user_id]
FROM             [user_question_answers] a
GROUP BY         a.[user_id]
HAVING           max(case when a.[answer_id] IN (6,9) then 1 else 0 end) = 1
AND              max(case when a.[answer_id] IN (1,10) then 1 else 0 end) = 1
于 2013-01-29T00:58:36.667 に答える