Join-Abfrage (1-to-n) ohne Daten in der rechten Tabelle?
Felix22
- datenbank
0 Rouven
Hallo Leute,
eine kurze SQL-Frage:
in der Tabelle "words" sind Wörter für ein Vokabeltrainer enthalten (Felder: wID, wWord). In der Tabelle "rounds" halte ich fest, welcher User welches Wort schon gewusst hat (Felder uID,wID).
Nun möchte ich eine Abfrage machen, die mir ein Wort aus "words" zurückgibt, das der User xy noch nicht gewusst hat. Alles klar soweit?
Also eine Abfrage auf "words" mit join auf "rounds", Fremdschlüssel ist wID, und die uID steht fest.
select wWord from words left join rounds on wID where uID!="xy" bringt natürlich so gar nichts, da "rounds" ja auch leer sein kann.
Bin für jede Hilfe dankbar.
Gruß Felix
Hello,
in der Tabelle "words" sind Wörter für ein Vokabeltrainer enthalten (Felder: wID, wWord). In der Tabelle "rounds" halte ich fest, welcher User welches Wort schon gewusst hat (Felder uID,wID).
sinngemäß müsste das etwa so aussehen:
SELECT words.wID AS wID, rounds.wID AS checkID, wWord
FROM words LEFT JOIN rounds
ON words.wID = rounds.wID
WHERE checkID IS NULL
-> Schema:
LEFT JOIN = garantiert alle Datensätze der linken Tabelle, ggf. ergänzt mit Daten der rechten
WHERE = gib mir nur diejenigen, bei denen du aus der rechten Tabelle nichts zurückbekommen hast.
MfG
Rouven