Mehrere Tabellen mehr oder weniger unabhängig'left joinen'

Hallo,
ich habe folgendes Problem. Ich möchte mit _einer_ Abfrage ein relativ
komplexes Rechtesystem einbeziehen. Ich möchte Informationen über einen
Nutzer auslesen, wenn er direkt oder über eine (n:m) Gruppenzugehörigkeit
ein bestimmtes Recht hat. Die Verknüpfungen existieren entsprechend nicht
zwingend. Außerdem wir noch der Domain-table drangejoint, dessen Einträg
auf jeden Fall existiert.Ich bin bisher soweit:

SELECT CONCAT(u.login, ' [at] ', d.name),
u.password,
CONCAT(d.name,'/',u.login,'/')
FROM user AS u
JOIN domain AS d
LEFT JOIN (user_has_permission AS uhp,
user_has_group AS uhg,
group_has_permission AS ghp,
permission AS pu,
ermission AS pg) (
ON u.domain_id=d.id AND
u.id=uhp.user_id AND
uhp.permission_id=pu.id AND
u.id=uhg.user_id AND
uhg.group_id=ghp.group_id AND
ghp.permission_id=pg.id
WHERE u.login = 'kay'
AND d.name = 'voits.net'
AND (pu.name='use_mail' OR pg.name='use_mail')
LIMIT 1

Leider schlägt das fehl, meiner Interpretation nach deswegen, weil in der
Klammer normal gejoint wird und deswegen alles wegfällt, wenn nur eine
Verknüpfung nicht existiert.

Wie muss es richtig lauten?

Gruß
Jonas Werres [ Di, 09 Oktober 2007 15:06 ] [ ID #1840125 ]

Re: Mehrere Tabellen mehr oder weniger unabhängig 'left joinen'

Jonas Werres schrieb:
>
> SELECT CONCAT(u.login, ' [at] ', d.name),
> u.password,
> CONCAT(d.name,'/',u.login,'/')
> FROM user AS u
> JOIN domain AS d
> LEFT JOIN (user_has_permission AS uhp,
> user_has_group AS uhg,
> group_has_permission AS ghp,
> permission AS pu,
> ermission AS pg) (
> ON u.domain_id=d.id AND
> u.id=uhp.user_id AND
> uhp.permission_id=pu.id AND
> u.id=uhg.user_id AND
> uhg.group_id=ghp.group_id AND
> ghp.permission_id=pg.id
> WHERE u.login = 'kay'
> AND d.name = 'voits.net'
> AND (pu.name='use_mail' OR pg.name='use_mail')
> LIMIT 1
>
> Leider schlägt das fehl

Was bringt dich auf die Idee, daß es fehl schlägt? Entzündet sich dein
Rechner bei der Ausführung spontan selbst? Oder gibt es evtl. eine
Fehlermeldung? Welche?

Grüße,
Dominik
--
Wo kämen wir denn hin, wenn jeder sagen würde wo kämen wir hin, aber
niemand gehen würde um zu sehen, wohin wir kämen, wenn wir gingen?
(Autor unbekannt)
Dominik Echterbruch [ So, 14 Oktober 2007 14:29 ] [ ID #1844436 ]

Re: Mehrere Tabellen mehr oder weniger unabhängig'left joinen'

> Was bringt dich auf die Idee, daß es fehl schlägt? Entzündet sich dein
> Rechner bei der Ausführung spontan selbst? Oder gibt es evtl. eine
> Fehlermeldung? Welche?

Nein, liefert keine Ergebnisse. Sorry, schlecht ausgedrückt. Hab es jetzt
aber selbst hingekriegt, mit Verfolgung meiner Vermutung.
Jonas Werres [ Do, 18 Oktober 2007 13:48 ] [ ID #1848078 ]
Datenbanken » de.comp.datenbanken.mysql » Mehrere Tabellen mehr oder weniger unabhängig'left joinen'

Vorheriges Thema: Anfänerfrage zur Tabellenerstellung
Nächstes Thema: phpmyadmin: benutzer sperren