dedlfix: MySQL Abfrage mit relationaler datenbank + SUM(), GROUP BY

Beitrag lesen

Tach!

sitze jetzt seit ner weile an dem problem eine SUM() GROUP BY abfrage zu starten, bei deren ausgabe ich aber die namen von personen via id aus einer extra personentabelle holen will, weil die in der ersten tabelle nur als nummer geführt sind.
Einfache sache möchte man meinen, aber irgendwie wird es nichts, habe auch nichts dazu gefunden, was mich befürchten lässt dass ich total auf dem Holzweg bin

Was ist denn das genaue Problem? Welches Ergebnis bekommst du statt des erwarteten?

$result = mysql_query("SELECT tabelle_a.name, SUM(tabelle_b.credits) FROM tabelle_b, tabelle_a GROUP BY tabelle_b.artist_id WHERE tabelle_b.artist_id=tabelle_a.id");

Lass bitte den PHP-Teil weg, wenn du ein SQL-Problem hast. Und beachte die Reihenfolge, in der die Klauseln aufgeführt werden müssen.

Du brauchst also die Summe je artist_id. Dann formulier das erstmal so, also SUM() und GROUP BY. Dazu willst du nur den zur artist_id gehörenden Namen. Das kann man joinen, wobei ich mir grad nicht sicher bin, ob das in dem Fall mit dieser Gruppierung nur bei MySQL geht oder generell zulässig ist. Auf alle Fälle wäre der zweite Weg eien correlated subquery in der SELECT-Klausel, jedenfalls dann, wenn du nur den einen Wert (Name) haben möchtest. Bei mehreren Werten würde ich die Query für die Summenbildung als Subquery in der FROM-Klausel notieren (mit Alias und neben der SUMme auch noch die artist_id selektieren) und dazu die Artist-Tabelle joinen.

dedlfix.