我有兩個表 - 我們將其稱爲grade
和test
- 通過第三個表上的關鍵字相關的信息,我們將其稱爲student
。在MySQL中根據日期選擇記錄
如果test
包含test_topic
列student_id
,和test_date
和grade
包含列student_id
,grade
和entered_date
,我希望能夠看到一個記錄在grade
表的基礎上,student_id
和entered_date
,副教授它僅與test
中的記錄相同,其日期最近爲student_id
。
我目前的查詢似乎會返回與所有以前的測試相關的每個年級,而不僅僅是最近的一次。我無法弄清楚如何限制它,以便顯示每個等級只與進入等級時最近的測試相匹配。
我不認爲我已經解釋了這個非常好,所以我給自己定了一個SQL撥弄示例模式,一些測試數據,以及我的當前查詢的位置:http://sqlfiddle.com/#!2/b5233/5
ETA:澄清:我希望查詢報告的等級爲,每個測試都是通過最近進入等級時進行的測試推導的。我在這裏添加了一個新的變體小提琴:http://sqlfiddle.com/#!2/b5233/43,其中包含測試主題,我認爲這個問題會讓問題更清楚一些。對於「亞當」(student_id數據= 1)所期望的結果將是:
STUDENT_ID TEST_DATE TEST_TOPIC GRADE_TIME TEST_GRADE
1 October, 02 2013 23:08:24+0000 Medieval History October, 02 2013 23:08:25+0000 A
1 October, 02 2013 23:08:30+0000 Calculus October, 02 2013 23:08:32+0000 C
1 October, 02 2013 23:08:43+0000 Biochemistry October, 02 2013 23:08:44+0000 A
1 October, 02 2013 23:08:49+0000 Advanced German October, 02 2013 23:08:50+0000 C
,但目前你會看到什麼還給是打擊匹配等級表中的每個年級之前,與其採取一切測試只有最近的。
你試過GROUP BY student_id嗎? – Gustavo
我有,但我承認我無法理解GROUP BY的工作原理。最終,它似乎只爲給定的學生返回一個記錄,而不是爲每次測試返回一個記錄。 – Valentine
你是否試圖通過考試,每個學生(或一名學生,因爲你已經限制了小提琴)獲得所有最新成績? – leon