我有一個查詢,從一個表中提取問題,並從另一個答案。我如何使這個查詢更容易寫
SELECT
questions.question,
questions.answers,
(SELECT COUNT(answer) FROM answers WHERE question_id = 1 AND answer = 1
GROUP BY answer) as ans1,
(SELECT COUNT(answer) FROM answers WHERE question_id = 1 AND answer = 2
GROUP BY answer) as ans2
FROM questions
WHERE questions.id = 1
雖然這工作我不喜歡添加額外的子查詢每個答案的想法(questions.answers
是一個逗號分隔的可能的答案的字符串)。這是可行的,但我相信必須有更好的方法。主要的是不同的問題有不同數量的答案。
有沒有更好的方法來做到這一點,或者這是一種可以接受的做事方式?我可以想象,查詢中的多個子查詢在將來可能會有(小)性能下降(不是我還在進行性能測試)。
如果適用,我不指望每個問題的答案不會超過5個。
這是一個更清潔 - 我認爲我必須爲每個問題的答案添加某種總和或子選擇然後呢? – Ross 2009-01-09 22:14:51