Hi @all,
ich habe ein kleines Problem bzw. eine Frage zu einer meiner DB-Abfragen. Also: Ich habe 3 Tabellen voc in der rund 500 Einträge sind. In chapter sind aus den 500 Einträgen rund 100 drin...und in ban kommen Ids aus voc die nicht mehr angezeigt werden sollen. Hier meine Abfrage dazu:
SELECT
v.id as vid
FROM
voc v,
chapter c ,
ban u
WHERE
c.bid = 1 AND
c.chapter >= 2 AND
c.chapter <= 3 AND
c.vid = v.id AND
c.vid != u.vid AND
u.uid = 1
Das Problem liegt anscheinend bei "c.vid != u.vid" sobald mehr Einträge als einer in ban stehen. Wenn es nur einen Eintrag in ban gibt, funktioniert alles so wies sein soll...sobald aber 2 oder mehr Einträge eingetragen sind, werden die Einträge aber verdoppelt,verdreifacht,... rausgeholt. Also statt 100 werden dann ungefähr 200 rausgeholt minus ein paar die nicht rausgeholt werden...ich möchte aber dass alle Ids in Ban nicht rausgeholt werden. Wo liegt der Fehler
cya CrazyPip
ich habe ein kleines Problem bzw. eine Frage zu einer meiner DB-Abfragen. Also: Ich habe 3 Tabellen voc in der rund 500 Einträge sind. In chapter sind aus den 500 Einträgen rund 100 drin...und in ban kommen Ids aus voc die nicht mehr angezeigt werden sollen. Hier meine Abfrage dazu:
SELECT
v.id as vid
FROM
voc v,
chapter c ,
ban u
WHERE
c.bid = 1 AND
c.chapter >= 2 AND
c.chapter <= 3 AND
c.vid = v.id AND
c.vid != u.vid AND
u.uid = 1
Das Problem liegt anscheinend bei "c.vid != u.vid" sobald mehr Einträge als einer in ban stehen. Wenn es nur einen Eintrag in ban gibt, funktioniert alles so wies sein soll...sobald aber 2 oder mehr Einträge eingetragen sind, werden die Einträge aber verdoppelt,verdreifacht,... rausgeholt. Also statt 100 werden dann ungefähr 200 rausgeholt minus ein paar die nicht rausgeholt werden...ich möchte aber dass alle Ids in Ban nicht rausgeholt werden. Wo liegt der Fehler
cya CrazyPip
Kommentar