Hilfe bei Abfrage

FallKraft

Neuer Benutzer
Beiträge
2
Hallo,
für mein Browsergame benötige ich die Hilfe für eine SQL-Abfrage mit Count-Funktion.
Ich hab folgende Tabellen (Primärschlüssel, Fremdschlüssel)
user ( uid, ugroup )
group ( gid, gname)

mit jeweils ein paar Datensätzen (Beispiel):
user ( 1, 1 )
user ( 2, 2 )
user ( 3, 2 )
group ( 1, "Alpha" )
group ( 2, "Bravo" )
group ( 3, "Charlie" )

Ich möchte nun per SQL-Abfrage die Namen aller Gruppen mit der dazu gehörigen Anzahl an Benutzern selektieren. Wenn kein Benutzer zu einer Gruppe gehört, soll am besten "0" ausgegeben werden.

Die Ausgabe sollte also etwa so aussehen:
gname | member
--------+------------
Alpha | 1
Bravo | 2
Charlie | 0

Ich habe folgendes probiert:
Code:
SELECT gname, COUNT(uid) FROM group, user GROUP BY gname;

Das kommt dabei heraus:
gname | member
--------+------------
Alpha | 3
Bravo | 3
Charlie | 3

Ich bin für jede Hilfe sehr dankbar,
mfG FallKraft
 
Werbung:
Hallo,
für mein Browsergame benötige ich die Hilfe für eine SQL-Abfrage mit Count-Funktion.


Ich bin für jede Hilfe sehr dankbar,
mfG FallKraft


Code:
test=# create table g(gid int primary key, name text);
CREATE TABLE
test=*# insert into g values (1,'alpha'),(2,'bravo'),(3,'charlie');
INSERT 0 3
test=*# create table u (uid int primary key, ug int references g);
CREATE TABLE
test=*# insert into u values (1,1),(2,2),(3,2);
INSERT 0 3
test=*# select g.name, count(u.ug) from g left join u on (g.gid=u.ug) group by g.name;
  name  | count
---------+-------
 bravo  |  2
 alpha  |  1
 charlie |  0
(3 rows)

Gähn.

Andreas
 
Werbung:
Zurück
Oben