Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Abfrage nach den besten N pro Gruppencode funktioniert für MySQL, aber ein anderes Ergebnis für MariaDB

Die Abfrageausführung darf ignorieren den ORDER BY im FROM ( SELECT ... ) . Dies ist wahrscheinlich der wahre Grund für den Unterschied, den Sie sehen. (Ich glaube nicht, dass Gordons Antwort relevant ist.)

Das Problem wird hier (vor 4 Jahren) diskutiert:https://mariadb.com/kb/en/mariadb/group-by-trick-has-been-optimized-away/ ; das hat eine Lösung, über eine Einstellung.

Einige andere Lösungen finden Sie hier:http://mysql.rjweb.org/doc.php/groupwise_max ; Sie sind auf Effizienz ausgelegt.

Noch ein mögliches Die Lösung besteht darin, ein falsches LIMIT hinzuzufügen mit einer großen Zahl in der Unterabfrage.