Select Statement IN und NOT IN

chogger

Neuer Benutzer
Beiträge
3
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
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.423
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


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

Neuer Benutzer
Beiträge
3
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
 

chogger

Neuer Benutzer
Beiträge
3
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 ;)
 
Werbung:
Oben