Announcement

Collapse
No announcement yet.

Erfüllung mehrerer Eigenschaften

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

  • Erfüllung mehrerer Eigenschaften

    Hallo,
    habe gerade ein riesen Brett vor dem Kopf und bitte um Hilfe:

    ich habe drei Tabellen mit Personen, Eigenschaften und die Zweisung Persoen zu Eigenschaften. Also:
    Code:
    pID | Name
    ----------------
    1    | Hans
    2    | Peter
    3    | Heike
    4    | Andrea
    
    
    eID | Eigenschaft
    ----------------
    1    | nett
    2    | aufbrausend
    3    | ruhig
    4    | oberflächlich
    5    | interessiert
    
    
    ID  | pID  | eID
    ----------------------
    1    | 1     | 1
    2    | 1     | 2
    3    | 1     | 5
    4    | 2     | 2
    5    | 2     | 5
    6    | 3     | 1
    7    | 3     | 5
    8    | 4     | 3

    Ich suche nun alle Personen, die nett und interessiert sind.

    Gruß & Danke für eure Mühe
    Matthias

  • #2
    Hallo,

    eine mögliche Variante ist:
    [highlight=sql]
    select p.pID, p.Name
    from personen p
    inner join zuweisung z on z.pID = p.pID
    inner join eigenschaften e on e.eID = z.eID
    where e.Eigenschaft in ('nett', 'interessiert')
    group by p.pID, p.Name
    having count(distinct p.pID) = 2
    [/highlight]
    und die andere Variante:
    [highlight=sql]
    select p.Name
    from personen p
    where exists (
    select 'X'
    from zuweisung z
    inner join eigenschaften e on e.eID = z.eID
    where e.Eigenschaft = 'nett'
    and z.z.pID = p.pID
    )
    and exists (
    select 'X'
    from zuweisung z
    inner join eigenschaften e on e.eID = z.eID
    where e.Eigenschaft = 'interessiert'
    and z.z.pID = p.pID
    )
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Halo Falk,
      vielen Dank für deine Hilfe.

      Gruß
      Matthias

      Comment

      Working...
      X