我已經有一段時間與SQL相同的問題,當我坐下來寫同樣的'蠻力'黑客我總是使用,我想那裏必須是一個更有效的方式來做我想做的事情。mysql-php查詢列表以建立表格
我有類似這樣的表格:
grades(gradeID, taskID, grade, username, date)
tasks(taskID, task...)
assignment(assignmentID, title...)
assignment_tasks(assignmentID, taskID)
assignment_students(assignmentID, username)
students(username, forename...)
最後5桌是相當靜態的,設置一次,獨自離開了大部分。
對於成績表,每次輸入新成績時都會創建新記錄。
我想爲一個任務生成一個彙總表,其中可能包含5個任務,每個學生可以爲每個任務設置任意數量的等級,最近的一個是我想要在概要。
我通常會做的是查詢學生列表和任務列表,然後爲每個學生構建一個巨大的嵌套for循環,通過每個任務查詢每個任務的最新成績,假設爲30學生,5個任務,這是152個查詢,這一直讓我覺得waaay太多了。
我想(希望)我在sql知識中有一個可怕的尷尬空白,並且有一個更聰明的方法來做到這一點。
編輯: 感謝您的回答 - 我還在構建實際的數據庫,所以我可以測試它,但我懷疑,答案下面不包括下列問題:
如果一個學生沒有嘗試任務/任務,在成績表中將不會有任何條目,但他們仍然需要在總結表中顯示每個任務的缺省成績(「u」)。我認爲這一點讓它更難。
再次編輯: 我現在有胚胎數據庫,它的工作原理是獲得最近成績的列表,其中沒有成績。轉移該列表現在是another question的主題!