以下是个人资料答案表:
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
答案 0 :(得分: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