Det er faktisk ikke rigtigt. Det vil returnere en tilfældig række. I praksis er dette ofte den første række i primær nøglerækkefølge, men der er ingen garanti. Andre databaser end MySQL tillader ikke denne praksis og vil give en fejl.
En måde at hente det højeste ID af ulæste meddelelser på er i hvert fald ved at deltage i meddelelsestabellen to gange. Den anden join søger kun efter ulæste beskeder. For eksempel:
SELECT max(msg.ID) as MaxID
, messages.from
, max(unread.ID) as MaxUnreadID
, users.userName
FROM users
join messages msg
on users.ID = msg.from
and messages.to = ?
left join
messages unread
on users.ID = unread.from
and messages.to = ?
and unread.read = 0
GROUP BY
users.ID
, users.userName