私はこれを回避しようとしました。しかし、私はどこにも到達していないと思います。
私は3つのテーブルを持っています:
この物語には、すべての質問と質問の種類が含まれています。
Table: Ref
id | type | info
==========================
1 SS Education
---------------------------
2 RB Gender
---------------------------
3 ST State
この表には、上記の表の質問の「オプション」が含まれています'Ref`
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
*に対して。
条件は次のとおりです。要求された回答が「ST」であるquestion_idの場合は、から回答を取得する必要があります。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>
何か案は?