Announcement

Collapse
No announcement yet.

Hilfe bei SQL Abfrage

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

  • Hilfe bei SQL Abfrage

    Hi,

    ich bin SQL Neuling und benötige Hilfe bei einer SQL-Abfrage...
    Ich erklär mal kurz wie die Tabelle aussieht

    Code:
       farbcode         |  benutzer       |
    -------------------------------------
           1           |          1        |
           2           |          1        |
           3           |          1        |
           1           |          2        |
           2           |          2        |
           4           |          2        |
    Jedem Benutzer können mehrere Farbcodes zugeordnet werden.
    Ich benötige nun eine Abfrage, die mir z.B. alle Benutzer liefert, die den Farbcode 1 UND 3 haben. Also keine OR Bedingung, der Benutzer muss alle gewünschten Farbcodes haben.

    Ist bestimmt ganz einfach, aber ich komm nicht drauf .

    Mfg,
    Horst

  • #2
    [highlight="SQL"]
    select benutzer from <Tabelle> t where farbcode =1 and benutzer in (select benutzer from <Tabelle> where farbcode=3);
    [/highlight]

    Comment


    • #3
      Dankeschön.

      Nur noch eine kurze Frage: Wenn der Benutzer mehr als zwei Farbcodes haben soll, dann muss ich die Abfrage ja immer weiter verschachteln. Gibts da ein bestimmtes Limit wie tief eine solche Verschachtelung sein darf?

      Comment


      • #4
        Gibts da ein bestimmtes Limit wie tief eine solche Verschachtelung sein darf?
        Hängt vom DBMS ab.
        In diesem Fall würde ich es aber anders machen. Ich würde einfach die Anzahl der Datensätze pro Benutzer abfragen.

        Comment


        • #5
          select benutzer from tabelle
          where farbcode in (1,3)
          group by benutzer
          having count(*) =2
          docendo discimus

          Comment


          • #6
            Hallo frauwue,

            das funktioniert aber nur unter der Bedingung das die Farbcodes eindeutig sind, also jeder Nutzer nur einmal eine 1 etc. haben darf.
            Ansonsten so ergänzen:
            [highlight=sql]
            select benutzer from tabelle
            where farbcode in (1,3)
            group by benutzer
            having count(distinct farbcode) = 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

            Working...
            X