Mailinglisten-Archive |
Hallo Nikolas, > -----Original Message----- > From: Nikolas Hagelstein [mailto:hagelstein at hauptsache.net] > Hi, > > Ansonsten sehe ich in Deiner Query eine Unart, du verwendest > ein Group By, > > aber keine Aggregatfunktionen. Andere DB's hätten Dir die Query > z.T. schon > > um die Ohren geschlagen :). > Kannst du das ein wenige genauer ausfuehren ? > Bye, > Niko Sicher, siehe Abschnitt 6.3.7 Functions for Use with GROUP BY Clauses unterer Teil. MySQL hat GroupBY abweichend von ANSI erweitert. Normallfall: Sobald Group By in einem Statement verwendet wird, muß jede in Select aufgeführte Spalte entweder in Group By aufgeführt sein, oder es muß eine Aggregatfkt. für die Spalte angegeben werden, damit das DBMS weiß, wie es einen Wert aus der Menge der gruppierten Spalten auswählen soll. Mysql: Lt. Handbuch wählt MySql bei Weglassen der Fkt. "irgendeinen" Wert aus der Menge aus. Gut, bei nährerer Betrachtung mag das bei Deiner Query mehr oder minder zufällig gerade klappen, da ja nur entweder ein NULL oder aber 1-n Bildreferenzen je Artikel, nie aber beides gleichzeitig je Artikel auftaucht. Vielleicht hast Du das ja bereits gewußt und diese Query auf MySQL hin optimiert, indem du das max() gestrichen hast. "Korrekt" nach ANSI SQL wäre es statt nur if(...) ein max(if(...)) zu verwenden. Grüße, Michael Donning -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive