Announcement

Collapse
No announcement yet.

Abfrage für alle erfüllten Bedingungen

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

  • Abfrage für alle erfüllten Bedingungen

    Hi,

    ich habe 2 Tabellen, bewerber und itskills. mit Hilfe einer dritten Tabelle als m:n Beziehung verknüpft, jetzt möchte ich gerne eine Abfrage haben, die mir als Ergebnis die Bewerber anzeigt auf die alle benötigen Skills zu treffen. Mittels

    Code:
    SELECT b.id, b.vorname, b.nachname FROM bewerber b JOIN bewerberskills bs ON b.id = bs.bwid JOIN itskills its ON its.id = bs.istd WHERE its.kategorie = 'Windows' OR its.kategorie ='Linux' Or its.kategorie= 'Apple';
    erhalte ich alle Bewerber, auf die mindestens 1 Kriterium zutrifft. Wie bekomme ich es aber hin, dass ich nur die Bewerber mit allen 3 Skills erhalte ?

    Merci für die Hilfe.

    SG

  • #2
    AND-Verknüpfung der Skills
    Christian

    Comment


    • #3
      auf das kam ich auch schon, aber das funktioniert nicht, es kann ja immer nur pro datensatz eine kategorie einem bewerber zugeordnet sein

      Das ist zumindestens mein Gedankenansatz, warum es nicht funzt. Auf jeden Fall erhalte ich einen empty set, obwohl 2 Bewerber alle 3 Skills erfüllen
      Zuletzt editiert von Frege; 24.03.2013, 14:10. Reason: Nähere Erläuterung

      Comment


      • #4
        Hallo,

        du musst natürlich die einzelnen Mengen mit UND Verknüpfen. Du benötigst also Subselects mit IN oder EXISTS. Einfacher ist aber die zusätzliche Abfrage der Anzahl der Treffer. Für die Bewerber mit allen Skills muss es für jeden Skill einen Treffer - also insgesamt drei - geben. Ergänze also deine Abfrage einfach um:
        [highlight=sql]
        GROUP BY b.id, b.vorname, b.nachname
        HAVING COUNT(b.id) = 3
        [/highlight]
        Und bitte beachten: Formatierung von SQL in Beiträgen

        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

        Working...
        X