Announcement

Collapse
No announcement yet.

SQL Not Exits

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

  • SQL Not Exits

    Hallo,

    ich habe 2 sql statement gebastelt, wollte jetzt die beide miteinander mit not exists verknüpfen, aber das geht nicht so richtig.
    so sieht das statement aus:

    Code:
    SELECT DISTINCT tbl_user.name, tbl_user.user_id
    FROM tbl_group INNER JOIN (tbl_user INNER JOIN tbl_user_group ON tbl_user.user_id = tbl_user_group.user_id) ON tbl_group.group_id = tbl_user_group.group_id 
    where Not Exists ( 
    SELECT tbl_user.user_id
    FROM tbl_group INNER JOIN (tbl_user INNER JOIN tbl_user_group ON tbl_user.user_id = tbl_user_group.user_id) ON tbl_group.group_id = tbl_user_group.group_id
    WHERE (((tbl_group.group_id)=2)))
    wenn er auch nur ein user_id findet in der Not Exists liefert er nichts zurück.
    Ich will User name und User Id die nicht in der gruppe_id= 2 sind.

    das Zweite statement liefert alle user_id die in der Gruppe_id = 2 enthalten sind. Wenn ich die Statement getrennt ablaufen lasse tun die ,aber so bald ich verknüpfen tun die nicht.

    ich habe es auch so versucht, aber auch das selbe effeckt:

    Code:
    SELECT tbl_user.name, tbl_user.user_id
    FROM tbl_user 
    WHERE Not Exists( 
    SELECT tbl_user.user_id
    FROM tbl_user_group,
    tbl_user
    WHERE (tbl_user.user_id = tbl_user_group.user_id) and (tbl_user_group.group_id=2))
    kann mir einer helfen ??

    Gruß

    Hans
    Zuletzt editiert von Hans_james; 26.05.2009, 13:26.

  • #2
    Versuche mal statt not exists folgendes

    Code:
    SELECT DISTINCT tbl_user.name, tbl_user.user_id
    FROM tbl_group INNER JOIN (tbl_user INNER JOIN tbl_user_group ON tbl_user.user_id = tbl_user_group.user_id) ON tbl_group.group_id = tbl_user_group.group_id 
    where tbl_user.user_ID NOT IN ( 
    SELECT tbl_user.user_id
    FROM tbl_group INNER JOIN (tbl_user INNER JOIN tbl_user_group ON tbl_user.user_id = tbl_user_group.user_id) ON tbl_group.group_id = tbl_user_group.group_id
    WHERE (((tbl_group.group_id)=2)))
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      In deinem NOT EXISTS fehlt der Verweis auf das äußere SQL.
      Probiers mal so:
      Code:
      SELECT tbl_user.name, tbl_user.user_id
      FROM tbl_user a
      WHERE Not Exists( 
      SELECT tbl_user.user_id
      FROM tbl_user_group
      WHERE (a.user_id = tbl_user_group.user_id) and (tbl_user_group.group_id=2))

      Comment


      • #4
        Originally posted by TomT View Post
        In deinem NOT EXISTS fehlt der Verweis auf das äußere SQL.
        Probiers mal so:
        Code:
        SELECT tbl_user.name, tbl_user.user_id
        FROM tbl_user a
        WHERE Not Exists( 
        SELECT tbl_user.user_id
        FROM tbl_user_group
        WHERE (a.user_id = tbl_user_group.user_id) and (tbl_user_group.group_id=2))
        Danke hast recht gehabt. Jetzt klappen auch die anderen alle statement. Ach ja noch ne fragen in der 2te select anweisung hast du oben stehen SELECT tbl_user.user_id ich habe da tbl_user_group.user_id stehen was ist der unterscheid kannst du mir das vielleicht erklären ???

        gruss

        hameed

        Comment


        • #5
          Ach ja noch ne fragen in der 2te select anweisung hast du oben stehen SELECT tbl_user.user_id ich habe da tbl_user_group.user_id stehen was ist der unterscheid kannst du mir das vielleicht erklären ???
          Also im Subselect steht auch bei dir tbl_user.user_id

          Ist aber (fast) egal was man hier schreibt. Kannst auch SELECT 1 schreiben. Wichtig ist die WHERE Bedingung.

          Comment


          • #6
            Originally posted by TomT View Post
            Also im Subselect steht auch bei dir tbl_user.user_id

            Ist aber (fast) egal was man hier schreibt. Kannst auch SELECT 1 schreiben. Wichtig ist die WHERE Bedingung.
            Ok danke habe jetzt verstanden. Muss wirklich sagen ihr habt mich weiter geholfen.

            Comment

            Working...
            X