MYSQL 8 Group By und Order BY
Hallo miteinander.
Ich habe vor langer langer Zeit eine Webseite programmiert.
Der Provider hat nun die MYSQ Version auf die 8.019 erhöht.
Jetzt funktioniert meine Abfrage mit gruppierungen und sortierungen nicht mehr.
Habe mich auch informiert direkt bei MYSQL aber egal wie ich es lese ich verstehe den Text nicht.
Meine alte abfrage sah so aus
das funktioniert nun in der neuen Version, aber die Sortierung stimmt nicht mehr
wenn ich noch ORDER BY dazu nehme funktioniert sie nicht mehr.
Kann mir mal jemand auf die Sprünge helfen was ich genau unter MYSQL 8 machen muss das die Gruppierung und Sortierung funktionieren ?
Hab im Manual gelesen ich müsse einen Join verwenden, was aber bei einer Datenbank keinen Sinn macht.
Ich versteh wirklich gerade nur Bahnhof.
Ich habe vor langer langer Zeit eine Webseite programmiert.
Der Provider hat nun die MYSQ Version auf die 8.019 erhöht.
Jetzt funktioniert meine Abfrage mit gruppierungen und sortierungen nicht mehr.
Habe mich auch informiert direkt bei MYSQL aber egal wie ich es lese ich verstehe den Text nicht.
Meine alte abfrage sah so aus
SELECT monat FROM sonntagsgedanke WHERE status=1 GROUP BY monat ORDER BY sortierung DESC
das funktioniert nun in der neuen Version, aber die Sortierung stimmt nicht mehr
SELECT monat FROM sonntagsgedanke group by monat
wenn ich noch ORDER BY dazu nehme funktioniert sie nicht mehr.
Kann mir mal jemand auf die Sprünge helfen was ich genau unter MYSQL 8 machen muss das die Gruppierung und Sortierung funktionieren ?
Hab im Manual gelesen ich müsse einen Join verwenden, was aber bei einer Datenbank keinen Sinn macht.
Ich versteh wirklich gerade nur Bahnhof.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 589108
Url: https://administrator.de/forum/mysql-8-group-by-und-order-by-589108.html
Ausgedruckt am: 27.12.2024 um 11:12 Uhr
22 Kommentare
Neuester Kommentar
Du vermischt in beiden Statements Dinge.
Dein Vorhaben, nach Monat zu Gruppieren und dann nach der Sortierung zu sortieren ergibt keinen Sinn:
Du willst alles nach Monaten gruppieren, und das Feld Sortierung wird dabei geschluckt, denn im März könnte es ja verschiedene Unhalte für Soertierung geben. Dennoch willst du danach sortieren.
Du musst die Sortierung zwangsweise ins SELECT, GROUP BY und ORDER BY aufnehmen. Ansonsten arbeite mit MAX(Sortierung) o. ä. Im Select-Statement
Dein Vorhaben, nach Monat zu Gruppieren und dann nach der Sortierung zu sortieren ergibt keinen Sinn:
Du willst alles nach Monaten gruppieren, und das Feld Sortierung wird dabei geschluckt, denn im März könnte es ja verschiedene Unhalte für Soertierung geben. Dennoch willst du danach sortieren.
Du musst die Sortierung zwangsweise ins SELECT, GROUP BY und ORDER BY aufnehmen. Ansonsten arbeite mit MAX(Sortierung) o. ä. Im Select-Statement
Hallo dressa,
Wahrscheinlich ist MySQL in der Version 8 mehr in Richtigung SQL Standard gegangen.
Bei MSSQL hat so etwas noch nie funktioniert.
Was willst du mit deiner Abfrage denn erreichen?
Ohne deine Tabellen und dein Ziel genau verstanden zu haben, hilft es sich schwer.
grüße vom it-frosch
SELECT monat FROM sonntagsgedanke WHERE status=1 GROUP BY monat ORDER BY sortierung DESC
Bei MSSQL hat so etwas noch nie funktioniert.
Was willst du mit deiner Abfrage denn erreichen?
Ohne deine Tabellen und dein Ziel genau verstanden zu haben, hilft es sich schwer.
grüße vom it-frosch
Jung,
Lies dich bitte mal in GROUP BY ein:
https://dev.mysql.com/doc/refman/8.0/en/group-by-modifiers.html
Du kannst nicht gruppieren, wenn du die zu gruppierenden Felde nicht im SELECT-Statement einbindest und umgekehrt.
Du musst das Regelkonforme machen
Und wenn deine Tabellen eindeutig sind, ist dein Group by id, Title unique
Lies dich bitte mal in GROUP BY ein:
https://dev.mysql.com/doc/refman/8.0/en/group-by-modifiers.html
Du kannst nicht gruppieren, wenn du die zu gruppierenden Felde nicht im SELECT-Statement einbindest und umgekehrt.
Du musst das Regelkonforme machen
Und wenn deine Tabellen eindeutig sind, ist dein Group by id, Title unique