我有一個包含3個表的數據庫。獲取最新測試結果
第一個表中包含學生的領域FLDID,fldName,fldPIN等
第二個表包含的問題,學生必須與領域studentID和questionID
第三個表包含一行接聽清單每次學生回答一個問題並且具有學生ID,問題ID,回答和分數的字段。每個問題可能有多個答案。
我想要一個查詢,通過它可以獲取學生姓名(通過他們的PIN)以及他們需要回答的問題列表以及每個問題的最近分數。未回答的問題將得分爲零。
我不確定如何爲此進行連接。
非常感謝您的幫助。
戴夫
因爲我已經想出這個SQL。你可以看看,讓我知道這是否有效或非常糟糕!我很努力地理解你的帖子,所以努力想出這個。
SELECT
`tbldelegate`.`fldFirstName`,
`tbldelegate`.`fldSurname`,
`tbldelegatequestions`.`fldQuestionID`,
`latestScores`.`fldScore`
FROM
`tbldelegate`
Left Join `tbldelegatequestions` ON `tbldelegatequestions`.`fldDelegateID` = `tbldelegate`.`fldID`
Left Join (SELECT *
FROM
(SELECT max(fldID) as maxID
FROM tblscoredata
GROUP BY
`tblscoredata`.`fldDelegateID`,
`tblscoredata`.`fldSection`,
`tblscoredata`.`fldQuestion`
) AS x INNER JOIN `tblscoredata` AS f ON f.fldID = x.maxID) AS `latestScores` ON `latestScores`.`fldQuestion` = `tbldelegatequestions`.`fldQuestionID`
WHERE
`tbldelegate`.`fldPIN` = '11'
您如何識別哪個響應最後?第三個表中是否有時間戳? – 2011-04-19 12:17:22
是的,第三個表中有一個時間戳和一個自動增量id列 – Dave 2011-04-19 15:08:34