Announcement

Collapse
No announcement yet.

Problem mit Abfrage über Verweistabelle

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

  • Problem mit Abfrage über Verweistabelle

    Hallo,

    ich würde gerne die Einträge in der tbl_User ausgeben lassen, denen alle in der WHERE-Klausel angegebenen Tags zugeordnet sind.

    SELECT tbl_user.ID, tbl_user.Bezeichnung
    FROM tbl_user INNER JOIN
    tbl_user_tags ON tbl_user.ID = tbl_user_tags.ID_user INNER JOIN
    tbl_tags ON tbl_user_tags.ID_tag = tbl_tags.ID
    WHERE (tbl_tags.Bezeichnung = "A") AND (tbl_tags.Bezeichnung = "B")


    Die Abfrage liefert natürlich null Ergebnisse, da eine Zeile in der tbl_tags ja nicht "A" und "B" sein kann.
    Leider fällt mir keine andere Möglichkeit ein, mit einer Abfrage alle User zu erhalten die als Tags "A" UND "B" besitzen.

    Könnt Ihr mir weiterhelfen, stehe momentan echt auf dem Schlauch.. Danke ;-)

    Marcel

  • #2
    Hallo!

    Ohne es getestet zu haben:
    SELECT tbl_user.ID, tbl_user.Bezeichnung
    FROM tbl_user where
    exists ( select a.* from tbl_user_tags a, tbl_tags where a.id_user = tbl_user.id
    and tbl_tags.id = tbl_user_tags.ID_tag and tbl_tags.bezeichnung = 'A')
    and
    exists ( select a.* from tbl_user_tags a, tbl_tags where a.id_user = tbl_user.id
    and tbl_tags.id = tbl_user_tags.ID_tag and tbl_tags.bezeichnung = 'B')

    BYE BERND

    Comment


    • #3
      Hallo Bernd,

      danke für deine Antwort. Leider funktioniert die Abfrage nicht (Fehlermeldung), habe schon rumprobiert, finde den Fehler aber nicht :-/

      Hättest du noch eine Idee?

      Danke!
      Marcel

      Comment


      • #4
        Originally posted by marcelm27 View Post
        Hallo Bernd,

        danke für deine Antwort. Leider funktioniert die Abfrage nicht (Fehlermeldung), habe schon rumprobiert, finde den Fehler aber nicht :-/

        Hättest du noch eine Idee?

        Danke!
        Marcel
        Hallo Marcel,

        dann wäre es hilfreich, du würdest verraten WELCHE Fehlermeldung. Und welche Datenbank du verwendest, wär auch nicht schlecht zu wissen

        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


        • #5
          Hi Falk,

          ich habs mit dem MS SQL-Server getestet, dort kommt die Meldung "Der mehrteilige Bezeichner tbl_user_tags.ID_tag konnte nicht gebunden werden".

          Gruß
          Marcel

          Comment


          • #6
            Hallo Marcel,

            Grund ist, das die Tabelle tbl_user_tags ein Alias a bekommen hat; der muss dann im JOIN /WHERE auch verwendet werden.

            SELECT tbl_user.ID, tbl_user.Bezeichnung
            FROM tbl_user where
            exists ( select a.* from tbl_user_tags a, tbl_tags where a.id_user = tbl_user.id
            and tbl_tags.id = a.ID_tag and tbl_tags.bezeichnung = 'A')
            and
            exists ( select a.* from tbl_user_tags a, tbl_tags where a.id_user = tbl_user.id
            and tbl_tags.id =a.ID_tag and tbl_tags.bezeichnung = 'B')

            Olaf
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X