Frage zu (m)einer DBAbfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu (m)einer DBAbfrage

    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

  • #2
    Beschäftige dich mit JOINs - z.b. über den Sticky Thread hier im Forum.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      naja JOIN hatte ich schon probiert..war das gleiche Problem

      SELECT
      v.id as vid,

      FROM
      voc v,
      chapter c INNER JOIN ban u ON c.vid != u.vid

      WHERE
      c.bid = 1 AND
      c.chapter >= 2 AND
      c.chapter <= 3 AND
      c.vid = v.id AND
      u.uid = 1

      Kommentar

      Lädt...
      X