gpt4 book ai didi

mysql - 获取最新测试结果

转载 作者:行者123 更新时间:2023-11-29 14:51:10 25 4
gpt4 key购买 nike

我有一个包含 3 个表的数据库。

第一个表包含带有字段 fldID、fldName、fldPIN 等的学生。

第二个表包含学生必须回答的问题列表,其中包含字段 StudentID 和 QuestionID

第三个表包含一行,记录学生每次回答问题的时间,并包含字段 StudentID、questionID、response 和 Score。每个问题可能有多个答案。

我想要一个查询,允许我获取学生姓名(通过他们的 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'

最佳答案

我猜测一些表的名称,但类似这样的东西应该可以解决问题。

SELECT s.fldName, sq.questionId, r.score 
FROM students s
INNER JOIN studentQuestions sq ON s.fldID = sq.studentID
LEFT JOIN questionResponses r ON sq.questionID = r.questionID AND sq.studentID = r.studentId
WHERE s.fldPIN = 12345;

尝试获取学生必须回答的每个问题的最新或未回答的结果(这是基于使用 auto_increment id 和具有更高 id 值的较新记录)。

SELECT s.fldName, sq.questionID, r.score 
FROM students s
INNER JOIN studentQuestions sq ON s.id = sq.studentID
LEFT JOIN questionResponses r ON sq.questionId = r.questionID AND sq.studentID = r.studentId
LEFT OUTER JOIN questionResponses r2 ON sq.questionID = r2.questionID AND sq.studentID = r2.studentID AND r.id < r2.id
WHERE r2.id IS NULL AND s.fldPIN = 12345

关于mysql - 获取最新测试结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5715863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com