我試圖解決這個問題。但我認爲我沒有得到任何地方。MySQL Query中的條件表更改
我有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
此表包含(在表Ref
type
= 「ST」)
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>
任何想法?
如何'us_states.id'相關的其他表?我的意思是,'us_states.id'與'Ref.id'相同嗎? –
不可以。在us_states中沒有提及ref.id –