Hi
ich habe eine Problem. Ich komme einfach nicht auf den gewünschten SQL Code. (arbeite mit MySql und PHP)
Ich habe 2 Tabellen:
User:
id (int, 11, primary)
name (varchar, 20)
userdaten:
id(int, 11, primary)
userid (int, 11) (Zuordnung zu User->id)
zahl (double, 5,3)
status (int, 1) (1/0 oder true/false)
Userdaten kann mehrere Einträge mit der selben userid haben.
Nun möchte ich, dass alle User ausgegeben werden. Im Array sollen folgende Infos sein:
User->id, User->name, Sum(userdaten->zahl). Eigenschaft: WHERE status = 1, sortiert nach der Summe
Irgendwie bekomme ich das nicht auf die Reihe. Zuerst habe ich es mit User Left Join Userdaten gemacht. Dann habe ich jedoch das problem, dass wenn keine Userdaten vorhanden sind, ich auch keine User ausgabe bekomme.
Dann dachte ich mir, okay mach Userdaten Left Join User und danach noch eine 2. Abfrage mit den User bei denen keine Zahl vorhanden ist. Hat auch geklappt, aber dann habe ich 2. Abfragen und das ist umständlich.
Außerdem habe ich dann ein Problem wenn ich weitere Filter einbauen will. Mir wäre es lieber wenn ich nur eine Abfrage habe, jedoch bekomme ich es nicht hin
Im Sum kann man ja keine Abfrage mache, ansonsten wäre es kein Problem. (also Sum(SELECT zahl FROM userdaten WHERE status = 1 AND userid = user.id))
Ich habe mir auch schon überlegt erst alle User in array zu speichern, dann die Summen auszulesen und dann alles mit PHP zu sortieren. Aber bei vielen Daten wird das sehr serverlastig.
Hoffentlich kann mir hier einer helfen =)
Ich wäre der Person / den Personen sehr dankbar.
Gruß
Mike