Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Select Statement IN und NOT IN

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von chogger, 31 Januar 2013.

  1. chogger

    chogger Neuer Benutzer

    Hallo an alle, ich habe eine Frage zu IN bzw NOT IN.

    Und zwar habe ich 2 Queries:

    ... where series_entry.seriesid in ($list)

    und

    ... where series_entry.seriesid not in ($list)

    $list ist in dem Fall 8, 9

    Während bei der ersten Abfrage das gewünschte Ergebnis ausgegeben wird ist bei der zweiten Abfrage das NOT IN anscheinend ohne Funktion. Es werden auf jeden Fall auch Felder mit series_entry.seriesid 8 angezeigt.

    Ich wollte mal fragen wo mein Fehler liegt, bzw was ich dagegen tun kann
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Kannst Du das reproduzieren? Ich nicht, nicht mit PostgreSQL:

    Code:
    test=# create table chogger as select * from generate_series(1,10) s;
    SELECT 10
    test=*# select * from chogger where s in (8,9);
     s
    ---
     8
     9
    (2 rows)
    
    test=*# select * from chogger where s not in (8,9);
     s
    ----
      1
      2
      3
      4
      5
      6
      7
     10
    (8 rows)
    
    Andreas
     
    chogger gefällt das.
  3. chogger

    chogger Neuer Benutzer

    Ah, ich habe einen logischen Fehler...
    Ein Fahrer taucht 2x in der Tabelle auf, einmal mit der 1 und einmal mit der 8. Bei oben genanntem Statement wird quasi der Eintrag mit der 1 ausgegeben. Ich möchte aber, dass kein Eintrag mit dieser ID ausgegeben wird wenn die 8 vorhanden ist.

    Hmm
     
  4. chogger

    chogger Neuer Benutzer

    Ich schon wieder, habe das Problem jetzt im Grunde gelöst, wollte nur noch kurz nachhaken ob das quasi die Eleganteste Lösung ist ;)

    ... where series_entry.driverid not in (select series_entry.driverid from series_entry where series_entry.seriesid in (8,9))

    Achso, DANKE dir trotzdem, hast mich auf den richtigen Weg geleitet ;)
     
  5. ukulele

    ukulele Datenbank-Guru

    Ich wollte nur noch anmerken: Wenn du mit NOT IN gegen ein Subselect prüfst sollte kein NULL Wert dabei sein.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden