Announcement

Collapse
No announcement yet.

SQL 'sowohl-als-auch'-SELECT

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

  • SQL 'sowohl-als-auch'-SELECT

    Hallo,

    ich arbeite mich grad in SQL ein und hab gleich eine dumme Frage.

    Ich hab eine Tabelle 'belegung' mit Kurs/Teilnehmer-Zuordnungen, also mit zwei Spalten kursID und userID.
    Die User können in beliebig vielen Kursen sein.

    Nun brauch die Kurse, in denen sowohl User 123 als auch User 456 sind. Also nicht 'oder' wie bei
    SELECT kursID FROM belegung WHERE userID IN (123, 456)
    denn da bekomme ich ja auch die Kurse, an denen nur einer der beiden teilnimmt.
    Was ich brauche sind nur die Kurse, in denen alle aufgeführten User sitzen.

    Die User-Liste kann dabei von unterschiedlicher Länge sein.

    Ich vermute, das ist ganz einfach zu lösen, oder?

  • #2
    Hallo,
    Originally posted by grabbi View Post
    ...Nun brauch die Kurse, in denen sowohl User 123 als auch User 456 sind. Also nicht 'oder' wie bei
    SELECT kursID FROM belegung WHERE userID IN (123, 456)
    denn da bekomme ich ja auch die Kurse, an denen nur einer der beiden teilnimmt.
    Da hast du die Bedingung nur nicht zu Ende gedacht . Die Kurse in denen alle gesuchten Teilnehmer sind, liefern auch eine entsprechende Teilnehmeranzahl.
    [highlight=sql]
    SELECT kursID FROM belegung
    WHERE userID IN (123, 456)
    group by kursID
    having count(distinct userID) = 2
    [/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
      Vielen Dank!

      Wär ich nicht drauf gekommen, ich hätt nach einem mehr 'inhaltlichen' Kriterium als der Länge gesucht. Wieder was dazu gelernt...

      Comment

      Working...
      X