Ilja: SELECT/JOIN/SQL-statement richtig formulieren

Beitrag lesen

yo,

Was ist denn nun genau der Bug? Die Abfrage funktioniert doch. Und was meinst du mit ausgeben ohne vorher zu gruppieren?

eben, alle anderen dbms ausser mysql würde dir bei dieser abfrage eine fehlermeldung ausgeben und zwar zurecht. die regel besagt, du darfst nur spalten innerhalb einer gruppierung ausgeben, über die auch gruppiert wurde oder aber bestandteil einer aggregat-funktion sind. wenn dir die problematik nicht bewußt ist, suche hier einfach im forum danach.

Ich dachte mir das so: tabelle projekte>=tabelle dispo>=users=rolle. Also benutzer/rolle als "kleinster gemeinsamer Nenner", bzw als Teilmenge von dispo, dispo als teilmenge von projekte. Welche datensätze verliere ich denn da?

hast du den erfahrungen mit LEFT JOINS, bzw. weißt du wofür sie verwendet werden ? wenn dem so ist, sollte dir auch klar ein, dass ein OUTER JOIN (LEFT JOIN) NULL werte zurück gibt, wenn es keine passenden Datensatz auf der anderen tabellenseite findet, in deinem falle wäre es die tabelle dispo. somit hätte auch die spalte dispo.rolle_id einen NULL wert und dann werden die datensätze über den INNER JOIN mit der "rolle" tabelle wieder wegfallen. mit anderen worten, dein OUTER JOIN an der stelle ist sinnlos.

Ilja