De uitvoering van de query mag negeren de ORDER BY
in de FROM ( SELECT ... )
. Dit is waarschijnlijk de echte reden voor het verschil dat u ziet. (Ik denk niet dat Gordons antwoord relevant is.)
Het probleem wordt hier besproken (4 jaar geleden):https://mariadb.com/kb/en/mariadb/group-by-trick-has-been-optimized-away/ ; die één oplossing heeft, via een instelling.
Enkele andere oplossingen zijn hier:http://mysql.rjweb.org/doc.php/groupwise_max ; ze zijn ontworpen om efficiënt te zijn.
Nog een andere mogelijke oplossing is om een nep LIMIT
. toe te voegen met een groot nummer op de subquery.