differenz bilden?

  • habs schon:

    Code
    select * from tblverarbeiter
    where vid not in (
    select vid from tblpreisliste_erh pl
    where jahr = 2004)

    hab nicht gewusst, dass das WHERE ... NOT IN funktioniert; verschachtelte SELECTs funktionieren ja anscheinend nicht, weiss da jemand mehr?

    i don't like signatures

  • Zitat von wescht

    habs schon:

    Code
    select * from tblverarbeiter
     where vid not in (
     select vid from tblpreisliste_erh pl
     where jahr = 2004)



    hab nicht gewusst, dass das WHERE ... NOT IN funktioniert; verschachtelte SELECTs funktionieren ja anscheinend nicht, weiss da jemand mehr?


    das is doch ein verschachteltes select...

  • eine gundlegende Frage: Was für SQL verwendest Du genau? MySQL? Wenn ja, dann welche Version? Die älteren Versionen von MySQL unterstützen nämlich keine Subselects.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Zitat von wescht

    wie bilde ich die differenz von 2 abfragen? d.h. ich habe eine liste von indizes, die ich nicht dabeihaben will.

    Du willst alle Verarbeiter haben, die einen Eintrag in der Preisliste habe, der nicht dem Jahr 2004 entspricht?

    Also die tblverarbeiter hat zB eine id, die tblpreisliste_erh eine v_id, die auf die verarbeiter id zeigt?

    Da würde ich einen ganz ordinären Left Join machen.

    zB

    Code
    select name from tblverarbeiter v
      left join tblpreisliste_erh p
        on v.id=p.v_id
          where p.jahr != 2004;

    wenn ALLE Verarbeiter durch tblpreisliste_erh abgedeckt werden, ists noch einfacher:

    Code
    select name from tblverarbeiter v, tblpreisliste_erh p
        where v.id=v_id and p.jahr != 2004;

    wenn Du mir konkrete Daten (so 10 Stück wären gut) und eine Tabellenstruktur gibst, kann ichs ausprobieren.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!