Laufen soll es unter MySql 4.0.
Tabelle1 enthält Wörter und jeweils eine ID, z.B. nWord (varchar) und nID (SmallInt). Tabelle3 enthält Benutzer und ihre ID: uName (varchar) und uID (SmallInt). Tabelle3 enthält eine n-zu-n Relation, welcher Nutzer bereits welches Wort entweder übersetzen konnte oder nicht (es handelt sich um einen Vokabeltrainer): sWordID (Varchar), sUserId (Varchar) und sStatus (TinyInt). sStatus=1 heißt, er/sie hat das Wort gewusst, sStatus=0, daß nicht. Nun möchte ich für einen bestimmten Benutzer ein zufälliges Wort ermitteln, welches er entweder nicht gewusst hat (sStatus=0) oder welches er noch nicht probiert hat (kein Eintrag in Tabelle3). Diese beiden Bedingungen bekomme ich nicht unter einen Hut und bitte die SQL-Cracks um Hilfe.
Abfrage auf ein Wort, das Benutzer xy bereits falsch beantwortet hat:
select nWord from Tabelle1 left join Tabelle3 on Tabelle1.nID=Tabelle3. sWordID where sUserId=xy and sStatus=0 order by rand() limit 1
Abfrage auf ein Wort, das Benutzer xy noch nicht aufgerufen hat:
select nWord from Tabelle1 left join Tabelle3 on Tabelle1.nID=Tabelle3. sWordID where [...] order by rand() limit 1
Weiter kam ich nicht.
Gruß, Felix