Sql Abfrage Problem

Luigihausen

Grünschnabel
Hallo,

ich stehe gerade auf der Leitung und brauche Hilfe:

Möchte gerne eine Abfrage an zwei Tabellen stellen. In der ersten Tabelle (benutzerdaten) stehen Namen und EMail-Adressen Spalten (benutzername und email) und in der zweiten Tabelle (tipps) stehen abgegebene Tipps von allen Spieltagen (1 - 34) in einer Spalte (spieltage) den Benutzern.
Jetzt möchte ich gerne herausfinden welche Benutzer noch keine Tipps am z.b. 25 Spieltag (in der Spalte Spieltag stehen nur die Zahlen) abgegeben haben.

Hiermit habe ich es versucht, aber so liefert mir das Ergebnis nur die Benutzer die schon Tipps abgegeben haben.

SELECT benutzername, email from benutzerdaten inner join tipps on (tipps.benutzername = benutzerdaten.benutzername AND tipps.spieltag = 25) WHERE aktiv = 1

wenn ich nicht = 25 sodern < 25 machen, dann werde mir leider die Ergbnisse zurückgegeben die auch schon vorher mal getippt haben.
 
UPS!

Das geht doch auch nicht!
Dann zeigt der doch nur die Benutzer an, die an irgendeinem anderen Tag getippt haben! :rolleyes: :-(

Also irgendwie will mir für dein Problem jetzt nicht die richtige Query einfallen!
 
Hallo nochmal!

Also, da bis jetzt niemand anderes gepostet hat, hab' ich mir noch kurz darüber Gedanken gemacht.
Das Ergebnis sollte so funktionieren:

Code:
SELECT
        b.benutzername,
        b.email
FROM
        benutzerdaten b
    LEFT JOIN
        tipps t
    ON
        b.benutzername = t.benutzername
WHERE
        t.spieltag = 25
    AND
        t.benutzername IS NULL

Da ich nicht weiss, zu welcher Tabelle "aktiv" gehört (es ist ja "WHERE aktiv=1" in der ursprünglichen Abfrage vorhanden), hab' ich das erstmal außen vor gelassen.

Bei dieser Abfrage muss die Spallte "benutzername" (zumindest in der Tabelle "tipps") als "NOT NULL" deklariert sein.

Ich rate dir auch dringend dazu, eine extra Spalte in "benutzerdaten" mit einer id des Benutzers anzulegen und diese dann auch als Verweis in der tipps-Tabelle anzugeben, statt des benutzernamens.
Schliesslich kann sich der Benutzername ja auch mal ändern!
 
Zuletzt bearbeitet:
Zurück