我试图解决这个问题。但我想我无处可去。
我有 3 张桌子:
这个故事包含所有问题和问题类型:
Table: Ref
id | type | info
==========================
1 SS Education
---------------------------
2 RB Gender
---------------------------
3 ST State
此表包含上表“参考”中问题的“选项”
Table: ref_ans
id | q_id | answer_text
===========================
1 1 Masters
---------------------------
2 1 Bachelors
---------------------------
3 1 Undergrad
---------------------------
4 2 Male
---------------------------
5 2 Female
---------------------------
6 2 Dont want to disclose
此表包含状态(表中type
的 =“ST” Ref
)
Table: us_states
id | answer_text
===========================
1 Alaska
---------------------------
2 Alabama
---------------------------
3 Arkansan
---------------------------
4 Arizona
---------------------------
5 Baltimore
---------------------------
etc
我想要的结果是:
ref.id, ref_ans.id, ref.answer_text / us_states.answer_text
*对于给定的ref.question_id
*。
条件是:如果 question_id 要求的答案是“ST”,它应该从 中提取答案us_states
,否则,它应该从ref-ans
表中提取答案。
我试过这个。显然,这不起作用:
SELECT ref.id,
CASE WHEN ref.type = 'ST' THEN
(SELECT ID, answer_text FROM us_states )
ELSE
(SELECT id, answer_text FROM ref_ans)
END
FROM ref
WHERE ref.ID = <id>
有任何想法吗?