Heinrich: mySQL-Problem bei Join

Guten Tag,

ich habe verschiedene Seiten mit Beispielen gewälzt, aber ich bin bis jetzt noch nicht auf eine Lösung für Problem gestoßen, daher wollte die frage, ob mit jemand weiter helfen kann.

Der IST-Zustand:
tbl_Eigenschaften enthält u.A. die Felder Name und WertNbr.
lnk_Person_Eigenschaft enthält die Felder WertNbr und PersonenNbr.

Ich möchte nun für eine Person (mit der PersonenNbr 1) alle Eigenschaften (Name und WertNbr) ausgeben, die er NICHT hat.
Alle Beispiele und Versuche liefern mir aber immer die Eigenschaften zurück die er hat oder eine leere Menge. Ich habe jedoch geprüft, dass es wirklich Eigenschaften gibt, die die Person nicht hat.

Wie muss ich den Aufruf in mySQL formulieren um die geforderten Angaben zu erhalten?

Gruß,
Heinrich

  1. Vielleicht gruppierst du erstmal die Datensätze, je Personen mit, und je ohne fehlende Datensätze (GROUP BY) ... und die lässt du dir dann Ausgeben ...

  2. Hello,

    Wie muss ich den Aufruf in mySQL formulieren um die geforderten Angaben zu erhalten?

    da würde ich eher mit einem Subselect arbeiten wollen (liefere mit alle Datensätze die eine Nummer haben, die ich NICHT finde, wenn ich nach der Person suche):
    SELECT name
    FROM tbl_Eigenschaften
    WHERE WertNbr NOT IN (
       SELECT WertNbr
       FROM lnk_Person_Eigenschaft
       WHERE PersonenNbr = 1
    )

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
    1. SELECT name
      FROM tbl_Eigenschaften
      WHERE WertNbr NOT IN (
         SELECT WertNbr
         FROM lnk_Person_Eigenschaft
         WHERE PersonenNbr = 1
      )

      Vielen Dank.
      Der Aufruf funktioniert. Mit Sub-Select hatte ich auch schon probiert, aber das es ein NOT IN gibt, war mit in Beispielen nicht begegnet.

      Jetzt klappt es, super.