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

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

am 09.10.2007 15:06:55 von Jonas Werres

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, '@', 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ß

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

am 14.10.2007 14:29:44 von Dominik Echterbruch

Jonas Werres schrieb:
>
> SELECT CONCAT(u.login, '@', 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)

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

am 18.10.2007 13:48:50 von Jonas Werres

> 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.