我正在查询两个表(students2014 和notes2014)中的数据,以便返回学生列表以及每个学生的注释。为此,我使用以下 select 语句:
SELECT *
FROM students2014
LEFT JOIN notes2014
ON students2014.Student = notes2014.NoteStudent
WHERE students2014.Consultant='$Consultant'
ORDER BY students2014.LastName
这成功地给了我一个列表,但是具有多个注释的学生出现两次,例如:
- 学生a - 注意
- 学生a - 注意
- 学生 b - 注意
- 学生 c - 注意
etc...
我只希望为每个学生显示最新的笔记,从而只提供每个学生的列表一次。
希望这是有道理的吗?
您需要使用子查询连接学生表。像这样的东西应该有效:
SELECT *
FROM `students2014`
LEFT JOIN (
SELECT `note`, `NoteStudent`
FROM `notes2014`
HAVING `NoteID` = MAX(`NoteID`)
GROUP BY `NoteStudent`
) `notes`
ON `students2014`.`Student` = `notes`.`NoteStudent`
WHERE `students2014`.`Consultant`='$Consultant'
ORDER BY `students2014`.`LastName`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)