SQL-Abfrage m:n Beziehung

alkoholliger

Grünschnabel
Folgende Konfiguration:

1. Tabelle: user
userid | username | etc

2. Tabelle: rights
rightid|rightname

3. Tabelle: user_has_rights
fk_userid|fk_rightid

Im Loginscript läuft eine Abfrage ab, welche die Daten eines Benutzers in die Session schreibt. Dazu sollten auch die Berechtigungen gehören, damit sie nicht immer wieder abgefragt werden müssen.

Allerdings kriege ich das sql-query nicht hin, damit mir nur die Rechte-ID und der Rechte-Name eines bestimmten Users zurückgegeben werden.

Einen ersten Ansatz habe ich, allerdings gibt mir diese Abfrage alle Rechte-Namen zurück und nicht nur diejenigen, welcher der USER 1 auch hat:

SELECT user.username, rights.rightname FROM user JOIN user_has_rights ON user.userid=00000000001 JOIN rights ON rights.rightid

Besten Dank für eure Hilfe!

Gruss Pascal
 
Fehlt bei dir was? So müsste es klappen

Code:
SELECT user.username, rights.rightname FROM user JOIN user_has_rights ON user.userid = user_has_rights.fk_userid JOIN rights ON rights.rightid = user_has_right.fk_rightid
 
Moin,

Code:
FROM user JOIN user_has_rights ON user.userid=user_has_rights.fk_userid JOIN rights ON rights.rightid = user_has_right.fk_rightid

so könnts klappen ;)

EDIT: hmm... zu langsam :(
 
Die Abfrage funktioniert soweit ... Danke

Um dies jetzt aber nur bei einem spezifischen Benutzer auszuführen: ein WHERE-Argument an den Schluss stellen?
 
Funktioniert auf der Datenbank einwandfrei!

Aus PHP heraus will er jetzt aber nicht mehr mit fetch_array() arbeiten. Was für eine Alternative besteht?
 
Zurück