Mysql
 sql >> Database >  >> RDS >> Mysql

La query per i primi N per codice di gruppo funziona per MySQL ma risultati diversi per MariaDB

L'esecuzione della query può ignorare il ORDER BY nel FROM ( SELECT ... ) . Questo probabilmente il vero motivo della differenza che stai vedendo. (Non credo che la risposta di Gordon sia pertinente.)

Il problema è discusso qui (4 anni fa):https://mariadb.com/kb/en/mariadb/il-gruppo-per-trucco-è-stato-ottimizzato-away/ ; che ha una soluzione, tramite un'impostazione.

Alcune altre soluzioni sono qui:http://mysql.rjweb.org/doc.php/groupwise_max ; sono progettati per essere efficienti.

Ancora un altro possibile la soluzione è aggiungere un falso LIMIT con un numero elevato nella sottoquery.