To nieprawda. Zwróci losowy wiersz. W praktyce jest to często pierwszy wiersz w kolejności klucza podstawowego, ale nie ma gwarancji. Bazy danych inne niż MySQL nie pozwalają na tę praktykę i spowodują zgłoszenie błędu.
W każdym razie jednym ze sposobów na odzyskanie najwyższego identyfikatora nieprzeczytanych wiadomości jest dwukrotne dołączenie do tabeli wiadomości. Drugie dołączenie szuka tylko nieprzeczytanych wiadomości. Na przykład:
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