steckl: SELECT bei phpBB-Forum (Beispiel)

Beitrag lesen

Hi,

Sollte eigentlich mit "group by post_id" und "having max(post_time)" klappen.

das ist meiner Meinung nach ein schlechter Ratschlag.

Bei mir hat es so bis jetzt immer geklappt. Darum bin ich davon ausgegangen, dass man das so macht, was offenbar ein Irrtum war.

Solches SQL akzeptiert nur MySQL. Nur unter bestimmten Bedingungen (die hier allerdings gegeben sein sollten) gibt es das gewünschte Ergebnis. Ich zitiere aus dem Handbuch:

In standard SQL, you would have to add customer.name to the GROUP BY clause. In MySQL, the name is redundant.

Heisst das nur, dass man statt "post_id" "Tabelle.post_id" schreiben sollte?

Diese beiden Saetze verstehe ich ueberhaupt nicht:

Do not use this feature if the columns you omit from the GROUP BY part are not constant in the group.

Spalten, die ich ausschliesse, sollen nicht konstant sein? Was heisst das?

The server is free to return any value from the group, so the results are indeterminate unless all values are the same.

Ist nicht genau darum HAVING da, damit der Server nicht einen beliebigen Wert zurueckgibt?

Genau dieses "Do not use this feature ..." führt hier im Forum zu ständigen Fragen, weil es mißachtet wird. Ich persönlich bevorzuge die Formulierung:

"Do not use this feature at all."

Gibt es eine elegantere Alternative dazu?

mfG,
steckl