Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Hilfe bei Abfrage

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von FallKraft, 1 März 2014.

  1. FallKraft

    FallKraft Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru


    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
     
  3. FallKraft

    FallKraft Neuer Benutzer

    Danke für deine Hilfe Andreas!
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden