MySQL Forums
Forum List  »  German

Re: Simpler Join: Komplette Tabelle wird gescannt
Posted by: Thomas Wiedmann
Date: December 22, 2012 09:46AM

Hallo Gregor,

der Query ist wohl mit der Zeit gewachsen und nun nicht mehr pflegbar:
Zwei Fragen zu der Abfrage:

a) ist es möglich den Teil

SELECT wetten.*
     , wetten.id AS wettID
[...]

zu bereinigen und nur die wirklich notwendigen Spalten anzufordern. Hier wird beispielweise die Spalte wetten.id zweimal aufgelistet. Generell sollte keine tabelle.* in der Selectliste sein (dies ist vollkommen unübersichtlich und fehleranfällig)


b) ungültiger GROUP BY

Am Ende der Abfrage steht dies.
[...]
GROUP BY  wetten.id
[...]

Genaugenommen darf MySQL den SQL nicht ausführen, da alle anderen Spalten ausser "wetten.id" einen Aggregatbefehl benötigen um korrekte Ergebnisse liefern zu können. Siehe: sql_mode ONLY_FULL_GROUP_BY

Schau Dir dazu mal folgende Links an:

http://dev.mysql.com/doc/refman/5.1/de/server-sql-mode.html
http://dev.mysql.com/doc/refman/5.1/de/group-by-hidden-fields.html


Soviel mal vorab...

Grüße
Thomas

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.