[英]MySQL query (joining tables)
問題表
id *(int)| 問題文本(字符串)| question_type(int)
替代表
id *(int)| question_id(int)| Alternative_text(字符串)| is_correct(布爾)
答案表
id *(int)| question_id(int)| Alternative_id(int)| answer_text(字符串)
“ *” =主鍵
每個問題可以是自由文本類型,也可以是多個選擇器。 多重選擇器問題有一個或多個選擇,只有一個是正確的。
答案由question_id和alternate_id(多個選擇器)或answer_text(自由文本)定義。 is_correct bool是,所以我可以標記哪個答案是正確的。
如何進行SQL查詢,為我提供每個問題列出的所有替代方案,並統計每個替代方案的數量,以顯示選擇了多少替代方案? 假設我可以將其存儲在數組中,並使用foreach循環對其進行遍歷,並將其顯示為以下示例。
例如,每個問題都由question_text表示,與該問題相關的每個替代項都由Alt1(alternative_text),Alt2等表示。。。替代項后的數字是它得到的選擇數(答案)。
Alt1 | 3
Alt2 | 2
Alt3 | 0
Alt1 | 2
Alt2 | 3
答1
答2
....
我可以查詢所有問題以及屬於它的所有替代方法,但是當我嘗試獲取每個問題替代方法的所有答案時,我就失敗了。
所以現在我可以使用來自SQL-ninja的一些幫助=)
在此先感謝Daniel
在我的頭頂上,這可能起作用:
SELECT alternatives.id, COUNT(DISTINCT(answers.id))
FROM alternatives
LEFT JOIN answers ON alternatives.id = answers.altid
GROUP BY alternatives.id;
這樣可以為您提供answers
表中每種替代方法出現的總次數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.