Jo: Problem mit JOIN

Hallo zusammen!

Ich hab ein kleines Tippspiel für aktuelle Zweitliga-Saison gemacht.

In der Datenbank hab ich folgende Tabellen:

user
Die Daten der Mitspieler

spielplan
Spieltag und Datum der Spiel

tipps
user-ID, spiel-ID und der Tipp

Ich bräuchte jetzt die Anzahl der Tipps, die jeder User für eine bestimmten Spieltag abgegeben hat.

Die Abfrage

SELECT u.name, count(*) FROM user u
JOIN tipps t ON b.id = t.user
JOIN spielplan s ON t.spiel = s.id
WHERE s.tag =3
GROUP BY u.id

liefert mir fast das gewünschte Ergebnis. Allerdings werden nur die User aufgeführt, die mindestens einen Tipp für den gewünschten Spieltag abgegeben haben. Ich hätte aber gerne alle User, also auch die, die für den betreffenden Spieltag noch nicht getippt haben.

Ich geh mal davon aus, dass das in einer Abfrage geht und ich nur mal wieder auf dem Schlauch steh...

Vielen Dank schon mal und viele Grüße
Jo

  1. hi,

    Allerdings werden nur die User aufgeführt, die mindestens einen Tipp für den gewünschten Spieltag abgegeben haben. Ich hätte aber gerne alle User, also auch die, die für den betreffenden Spieltag noch nicht getippt haben.

    http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/index.htm#leftright_join sollte weiterhelfen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. yo

      http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/index.htm#leftright_join sollte weiterhelfen.

      ein paar tips die er noch dabei beachten sollte wären hilfreich. zum einen istr die abfrage nicht ganz korrekt, was gie gruppierung betrifft, auch wenn keine fehlermeldung kommt. deswegen gehe ich mal davon aus, das du mysql benutzt. die lsöung ist einfach, gruppiere zusätzlich zur id, auch über den namen.

      zum anderen musst du OUTER JOINS einsetzen und dann bei der Aggregat-funktion Count() aufpassen, dass du nicht das * zum zählen nimmst, sondern eine spalte aus der tabelle mit dem tipps. sonst würde ja immer mindestens 1 herauskomen, auch wenn es gar keni tipp gab, da aber dann immer mindestens ein datensatz für jeden spieler vorhande ist.

      Ilja

      1. Hi wahsaga! Hi Ilja! Hi Ihr anderen!

        Sorry, dass ich mich jetzt erst melde. Bin das Wochenende nicht an den Rechner gekommen.

        Aber danke! Funktioniert jetzt alles so, wie ich es gerne hätte und den JOIN hab ich glaub ich auch so langsam verstanden.

        Danke nochmal und viele Grüße
        Jo