Ilja: MySQL: GROUP BY

Beitrag lesen

yo,

aus irgendwelchen Gründen erlaubt MySQL die völlig unsinnige Konstellation, Spalten zu selektieren, die nicht in der GROUP BY Klausel aufgelistet werden. Andere DBMSse liefern bei so etwas gnadenlos einen Fehler, weil im Grunde kein Weg existiert, einen derartigen Widerspruch aufzulösen.

der grund dafür ist, dass die entwickler performance gewinnen wollten, da letztlich hinter jeder group by spalte sortierungen stecken. ausserdem erlaubt mysql nur spalten mit auszugeben, die nicht in der group by klausel angeführt werden, wenn der inhalt der daten in der jeweiligen gruppierung gleich ist. dann spielt es nämlich auch keine rolle mehr, welcher zufällig ausgewählt wird, sind ja eh alle gleich.

oder mit anderen worten, mysql erlaubt solche konstrukte nicht, gibt aber keine fehlermeldung aus. scheinbar können/wollen sie nicht unterscheiden, ob nun alle spaltenwerte der jeweiligungen gruppierung gleiche werte haben oder nicht. zustimmen tue ich dir, dass das ziemlich dumm ist.

Zusätzlich: Die Selektierung pauschal jeder Spalte einer Tabelle ist nicht praxistauglich.

albern, das kommt immer auf den konkreten fall drauf an. programme wie phpmyadmin können diese funktion sehr gut gebrauchen, schließlich sollen sie alle spalten anzeigen, obwohl sie noch gar nicht wissen, welche genau das sein werden.

Wenn Du gruppierst, dann nach *allen* Spalten, die Du selektierst.

das ist meines wissens eine projektion und nicht selektion.

Ilja