nilsfad: Unterschiedliche Funktionsweise der GROUP-BY-Klausel

Beitrag lesen

Hallo Forum,

es geht um MySQL in Kombination mit PHP, und zwar programmiere ich da gerade an einem Forum und bin auf ein kleines "Problem" gestossen das sich wie folgt äußert:
Das Select-Statement zum Anzeigen der Beitragsübersicht mit "Count" der Antworten auf jedes Topic produziet auf meinem Mac Mini zuhause erwartungsgemäße Ergebnisse, wenn ich meine Schöpfung jedoch auf meinen Test-Webserver im Netz lade, auf dem wohl eine ältere MySQL Version läuft, baut die Group-By Klausel wohl plötzlich "Mist".

Hier das Statement:
$query = "SELECT prb_request.request_number, prb_request.hierarchy_location, request, author, category, last_name, first_name, date_format(date_posted, '%d.%m.%y, %k:%i Uhr') AS fmt_time, COUNT(*) - 1 AS CommentCount FROM (prb_request INNER JOIN prb_user ON prb_user.login_name LIKE prb_request.author) LEFT JOIN prb_request_category ON prb_request.request_number LIKE prb_request_category.request_number GROUP BY IF(LEFT(hierarchy_location,LOCATE('.',hierarchy_location) - 1) = '',hierarchy_location, LEFT(hierarchy_location, LOCATE('.', hierarchy_location) - 1)) $orderby";

Erwartungsgemäss sollte dies eine Tabelle sämtlicher Themen aller Kategorien mit Spalte für Anzahl der Antworten ausgeben. Auf dem Test-Webserver mit älterer MySQL Version jedoch "wählt" die Group-By Klausel allerdings eine falsche Zeile aus der Ergebnismenge, und zwar meist irgendeine Antwort, anstatt des übergeordneten Themas.
Nur zum Verständnis, ich handhabe es momentan so, dass Themen und Antworten in der selben Tabelle gespeichert sind, nur dass Antworten sich halt dadurch auszeichnen, dass sie keiner Kategorie zugeordnet sind und einen anderen "hierarchy_tag" haben.
Da es auf meinem Rechner zuhause ja erwartungsgemäß klappt, gehe ich davon aus, dass mein Statement so schonmal in Ordnung ist, allerdings würde ich gerne die Abwärtskompatibilität zu älteren MySQL Versionen herstellen.

Weiß jemand vielleicht etwas zu dieser "Thematik" wo die Group-By Klausel ein Bündel von Zeilen unter EINER verkehrten Zeile zusammenfasst? Was kann man dagegen tun?