У меня есть запрос, показанный ниже, который я хотел бы использовать для отображения списка самых последних изменений для пользователя.Таблица, в которой хранятся записи, может иногда содержать несколько изменений для каждого учащегося, но я бы хотел показать только самые последние изменения для каждого пользователя.
По какой-то причине при использовании MAX (отметка времени) возвращается только ОДИНвход пользователя, а не других пользователей.Если я удаляю МАКС (отметка времени), я возвращаюсь к возвращению всех записей, а не только одной.Если я добавлю МАКС на временную метку назад, он иногда показывает только одно изменение пользователя, иногда ни одного ... Любая помощь будет оценена
SELECT a.*
FROM
( SELECT
rID
, r.studentID
, oldMethod
,newMethod
,oldSubMethod
,newSubMethod
,timestamp
,r.staffID
,type
, o.methodName oldName
, n.methodName newName
, s.firstName fName
, s.lastName lName
FROM changeReport r
LEFT
JOIN methodLookup o
ON o.methodID = r.oldMethod
LEFT
JOIN methodLookup n
ON n.methodID = r.newMethod
JOIN s s
ON s.studentID = r.studentID
LEFT
JOIN staffaccounts a
ON r.staffID = a.staffID
WHERE '$bnu' IN (newSubMethod,oldSubMethod)
AND DATE(timestamp) = CURRENT_DATE
) a
JOIN
( SELECT s.studentID
, MAX(timestamp) timestamp
FROM changeReport r
LEFT
JOIN methodLookup o
ON o.methodID = r.oldMethod
LEFT
JOIN methodLookup n
ON n.methodID = r.newMethod
JOIN s s
ON s.studentID = r.studentID
LEFT
JOIN staffaccounts a
ON r.staffID = a.staffID
WHERE '$bnu' IN (newSubMethod,oldSubMethod)
AND DATE(timestamp) = CURRENT_DATE
) b
ON b.studentID = a.studentID
AND b.timestamp = a.timestamp