Announcement

Collapse
No announcement yet.

in bzw not in

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • in bzw not in

    Ich habe 2 Tabellen. Eine Tabelle gross eine klein
    In klein stehen die Werte von 0bis 9 drin. In Gross die Werte 1 bis 100.
    Wenn ich die SQL Abfrage :
    select * from klein where k not in( select g.g from gross g )
    mache dann müsste er mir doch eigentlich die Werte ausgeben die nicht in gross sind. Also die 0. Das funktioniert aber nur wenn ich
    select * from klein where k not in( select g.g from gross g where g is not null )
    eingebe`? Kann mir das jemand erklären. Ich find das absolut unlogisch...

  • #2
    Hallo,

    ich habe mal versucht das ganze zu rekonstruieren:

    Code:
    create table klein(  k integer(10) );
    create table gross(  g integer(10) );
    
    insert into klein values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
    insert into gross values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11);
    anschließend habe ich deine abfragen ausprobiert:

    Code:
    select * from klein where k not in( select g from gross );
    select * from klein where k not in( select g from gross where g is not null);
    beide funktionieren und liefern als ergbnis nur die 0 zurück.

    kann das vielleicht an unterschiedlichen datenbankversionen liegen?

    ich habe die version 5.0.27.

    oder habe ich bei der rekonstruktion etwas falsch gemacht?

    Comment

    Working...
    X