left join problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • left join problem

    Folgendes Problem:
    Ich hab 2 tabellen (td_group und td_users)
    PHP-Code:
    mysqldesc td_users;
    +----------+--------------+------+-----+---------+----------------+
    Field    Type         Null Key | Default | Extra          |
    +----------+--------------+------+-----+---------+----------------+
    id       int(255)     |      | PRI NULL    auto_increment |
    name     varchar(255) | YES  |     | NULL    |                |
    passwort varchar(255) | YES  |     | NULL    |                |
    groupid  int(255)     | YES  |     | NULL    |                |
    mail     varchar(255) | YES  |     | NULL    |                |
    +----------+--------------+------+-----+---------+----------------+
    5 rows in set (0.01 sec
    PHP-Code:
    mysqldesc td_group;
    +----------------+--------------+------+-----+---------+----------------+
    Field          Type         Null Key | Default | Extra          |
    +----------------+--------------+------+-----+---------+----------------+
    id             int(255)     |      | PRI NULL    auto_increment |
    name           varchar(255) | YES  |     | NULL    |                |
    can_edit_group tinyint(1)   | YES  |     | NULL    |                |
    can_edit_todo  tinyint(1)   | YES  |     | NULL    |                |
    can_add_group  tinyint(1)   | YES  |     | NULL    |                |
    can_del_group  tinyint(1)   | YES  |     | NULL    |                |
    can_add_todo   tinyint(1)   | YES  |     | NULL    |                |
    can_del_todo   tinyint(1)   | YES  |     | NULL    |                |
    can_view_todo  tinyint(1)   | YES  |     | NULL    |                |
    can_add_user   tinyint(1)   | YES  |     | NULL    |                |
    can_del_user   tinyint(1)   | YES  |     | NULL    |                |
    can_edit_user  tinyint(1)   | YES  |     | NULL    |                |
    can_sedit_user tinyint(1)   | YES  |     | NULL    |                |
    +----------------+--------------+------+-----+---------+----------------+
    13 rows in set (0.00 sec
    ich will jetzt (mit einem befehl) alle gruppen ausgeben und die anzahl der user die drin sind.

    PHP-Code:
    Select g.id,count(u.id) as anzahl,g.name from td_group as g LEFT JOIN td_users as u on u.groupid g.id group by u.groupid
    soweit so gut, alles geht, nur leider fehlt eine gruppe (0 user drin, genauso wie eine andere)

    users hat 3 zeilen
    gruppen 4


    hoffe jemand findet mein denkfehler

  • #2
    SELECT count(*), b.id, b.name
    FROM td_users a LEFT OUTER JOIN td_group b
    ON a.groupid = b.id
    GROUP BY b.id, b.name
    Zuletzt geändert von MelloPie; 10.08.2003, 23:00.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      dann zeigt er die beiden gruppen wo keine user drin sind nicht an ;(

      Kommentar


      • #4
        RIGHT JOIN statt LEFT JOIN?
        was passiert dann?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          thx

          Kommentar


          • #6
            np

            is doch auch irgendwie logisch

            LEFT JOIN: alles, was in der linken tabelle drinsteht, egal ob es in der rechten auch auftaucht


            RIGHTJOIN: alles, was in der rechten tabelle drinsteht, egal ob es in der linken auch auftaucht
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              keine ahnung warum ich oben net draufgekommen bin *huges*

              ich hab es jetzt mit left join gemacht (umgedreht) da mir left besser gefällt (ein zeichen weniger *smilie*)

              Kommentar

              Lädt...
              X