Gast
2005-10-20, 01:44:29
Hallo zusammen,
Hab nen kleines Problem mit ner SQL-Abfrage. Vielleicht weiß ja wer ne Lösung...
vereinfachte Darstellung: Es besteht
- eine Tabelle "user" mit Spalte "username" und "userid"
- eine Tabelle "user2projekte" mit Spalte "userid" und "projektid"
- eine Tabelle "projekt" mit Spalte "projektid" und "projektart"(=eine ID-Nummer)
Ich möchte jetzt zu jedem User die Anzahl der jeweiligen Projektarten ausgeben (also z.B. User1 hat 4 Projekte der Art 1 gemacht, 2 der Art 2 und 10 der Art 3). Ich kriegs mit
SELECT *, COUNT(DISTINCT user.userid,projektid) as projektanzahl from user LEFT JOIN user2projekte USING(userid) LEFT JOIN projekt USING (projektid) GROUP BY user.userid
aber nur hin, die Gesamtzahl der Projekte auszugeben, die der Benutzer gemacht hat. Wie kann ich denn nun hinkriegen, dass ich die Zahl der jeweiligen Projektart pro User rauskriege? Geht das überhaupt mit einer Abfrage?
Hab nen kleines Problem mit ner SQL-Abfrage. Vielleicht weiß ja wer ne Lösung...
vereinfachte Darstellung: Es besteht
- eine Tabelle "user" mit Spalte "username" und "userid"
- eine Tabelle "user2projekte" mit Spalte "userid" und "projektid"
- eine Tabelle "projekt" mit Spalte "projektid" und "projektart"(=eine ID-Nummer)
Ich möchte jetzt zu jedem User die Anzahl der jeweiligen Projektarten ausgeben (also z.B. User1 hat 4 Projekte der Art 1 gemacht, 2 der Art 2 und 10 der Art 3). Ich kriegs mit
SELECT *, COUNT(DISTINCT user.userid,projektid) as projektanzahl from user LEFT JOIN user2projekte USING(userid) LEFT JOIN projekt USING (projektid) GROUP BY user.userid
aber nur hin, die Gesamtzahl der Projekte auszugeben, die der Benutzer gemacht hat. Wie kann ich denn nun hinkriegen, dass ich die Zahl der jeweiligen Projektart pro User rauskriege? Geht das überhaupt mit einer Abfrage?