Ergebnis 1 bis 10 von 10

Thema: Abfrage fehlender Einträge mittels Suchliste

  1. #1
    rajanski ist offline Benutzer
    Registriert seit
    03.02.2009
    Beiträge
    49

    Standard Abfrage fehlender Einträge mittels Suchliste

    Hallo, es ist sicher ganz einfach aber ich komm einfach nicht drauf:

    ich habe eine tabelle tab mit

    x
    1
    2
    3
    4
    5
    7
    und eine suchliste mit den einträgen

    1
    2
    3
    4
    5
    6

    nun möchte ich abfragen, welche der in der Suchliste enthaltenen Einträge nicht in der Tabelle tab sind. Das Ergebnis soll also 6 sein.

    habe miteiner kombi aus "tab.x in (1,2,3,4,5,6) and ... not in" probiert aber ich komme auf keinen grünen Zweig.
    kann mir einer weiterhelfen?

    Vielen Dank!!

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von rajanski Beitrag anzeigen
    Hallo, es ist sicher ganz einfach aber ich komm einfach nicht drauf:

    ich habe eine tabelle tab mit

    x
    1
    2
    3
    4
    5
    7
    und eine suchliste mit den einträgen

    1
    2
    3
    4
    5
    6

    nun möchte ich abfragen, welche der in der Suchliste enthaltenen Einträge nicht in der Tabelle tab sind. Das Ergebnis soll also 6 sein.

    habe miteiner kombi aus "tab.x in (1,2,3,4,5,6) and ... not in" probiert aber ich komme auf keinen grünen Zweig.
    kann mir einer weiterhelfen?

    Vielen Dank!!
    Code:
    test=# select * from daten;
     i
    ---
     1
     2
     3
     4
     5
     7
    (6 rows)
    
    test=*# select * from such;
     i
    ---
     1
     2
     3
     4
     5
     6
     7
    (7 rows)
    
    test=*# select such.i from daten right join such on (daten.i=such.i) where daten.i is null;
     i
    ---
     6
    (1 row)
    Btw.:

    Deine Suchtabelle kann man auch on-the-fly erzeugen, mit generate_Series():

    Code:
    test=# select such.i from daten right join (select generate_series(1,7) i) such on (daten.i=such.i) where daten.i is null;
     i
    ---
     6
    (1 row)
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    rajanski ist offline Benutzer
    Registriert seit
    03.02.2009
    Beiträge
    49

    Standard

    hallo, danke!

    aber geht das anstatt eine suchtabelle in der db haben zu müssen nicht auch mit einem "...in (1,2,3,4,5,6)..."
    ansonsten müsste ich die tabelle sonst erst extra anlegen...

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von rajanski Beitrag anzeigen
    hallo, danke!

    aber geht das anstatt eine suchtabelle in der db haben zu müssen nicht auch mit einem "...in (1,2,3,4,5,6)..."
    ansonsten müsste ich die tabelle sonst erst extra anlegen...

    Natürlich geht das auch mit in (...), was aber bei großen Mengen von ... auch nicht grade angenehm zu schreiben ist. Ich zeigte doch, wie das mit generate_Series() geht, oder?


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    rajanski ist offline Benutzer
    Registriert seit
    03.02.2009
    Beiträge
    49

    Standard

    hm, hast du für die verwendung von "in (...)" noch ein entsprechendes beispielß ich kriegs selber einfach nicht hin, sorry bin echt anfänger..
    danke!

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von rajanski Beitrag anzeigen
    hm, hast du für die verwendung von "in (...)" noch ein entsprechendes beispielß ich kriegs selber einfach nicht hin, sorry bin echt anfänger..
    danke!
    Ich ziehe meine Aussage "Natürlich geht das auch mit in (...)" hiermit zurück ;-)

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    rajanski ist offline Benutzer
    Registriert seit
    03.02.2009
    Beiträge
    49

    Standard

    hm aber man muss doch irgendwie eine temporäre liste mit den gewünschten Werten erzeugen können. mit generate series funktioniert nur das Beispiel, nicht aber hier die Anwendung..

  8. #8
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von rajanski Beitrag anzeigen
    hm aber man muss doch irgendwie eine temporäre liste mit den gewünschten Werten erzeugen können. mit generate series funktioniert nur das Beispiel, nicht aber hier die Anwendung..
    Geht es noch etwas mehr ungenauer?

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  9. #9
    rajanski ist offline Benutzer
    Registriert seit
    03.02.2009
    Beiträge
    49

    Standard

    also die suchliste besteht aus den werten:

    1234,456345,3456345,12112,2323


    wie bekomme ich die einfach in eine temporäre, einspaltige tabelle, ohne mit copy und csv import rumdödeln zu müssen. danke

  10. #10
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von rajanski Beitrag anzeigen
    also die suchliste besteht aus den werten:

    1234,456345,3456345,12112,2323


    wie bekomme ich die einfach in eine temporäre, einspaltige tabelle, ohne mit copy und csv import rumdödeln zu müssen. danke
    create table such(i int); insert into such values (1234),(456345),(3456345),(12112),(2323);

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 21.06.2011, 13:08
  2. Frage Einträge löschen
    Von nixdorf im Forum Allgemeines
    Antworten: 8
    Letzter Beitrag: 16.03.2009, 11:01
  3. Problem SQL-Anfänger: Abfrage mittels zweier Tabellen?
    Von klitze2 im Forum SQL
    Antworten: 7
    Letzter Beitrag: 19.06.2008, 13:29
  4. Mittels einer RULE eine UPDATE-Abfrage ändern ...
    Von kiaaap im Forum Trigger und Funktionen
    Antworten: 5
    Letzter Beitrag: 10.06.2007, 11:45
  5. zeilenübergreifende Einträge zusammenfassen
    Von newbie_needs_help im Forum SQL
    Antworten: 2
    Letzter Beitrag: 06.12.2006, 17:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum