2016-03-21 2 views
0

Ich habe drei Tabellen. Hier ist ein BeispielAbfrage von fünf Tabellen, die komplizierte Beziehung haben

table_one

------------------------------------- 
id | username | group | 
------------------------------------- 
1  |  user  |  1  | 
------------------------------------- 

table_two

---------------------- 
groupid| groupname | 
---------------------- 
    1 | superadmin | 
---------------------- 

table_three

---------------------------------- 
id | rights | groupid | 
---------------------------------- 
1  |  1  |  1  | 
---------------------------------- 
2  |  2  |  1  | 
---------------------------------- 

table_four

--------------------------------------------- 
    rights | name      | 
--------------------------------------------- 
    1  | adminforfirsttdepartment  | 
--------------------------------------------- 
    2  | adminforseconddepartment  | 
--------------------------------------------- 

Ich möchte die username und id auch die group Informationen dieser username bekommen und auch alle rights wo die group ist, dass für die group des user (oder einfach wo groupie = usergroupid) dann die name der rights das ist auf die user zugewiesen.

Ist es möglich, nur eine Abfrage dafür zu haben?

+0

Haben Gruppen immer mindestens ein Recht? Können Sie auch Ihre Frage bearbeiten, um "table_one" usw. durch die tatsächlichen Tabellennamen zu ersetzen, damit Ihre Frage sinnvoller ist? – Bohemian

Antwort

0

Versuchen Sie dies und vergessen Sie nicht, die :id in where Zustand zu ändern.

SELECT t1.id, 
     t1.username, 
     t4.name 
FROM table_one t1 
     INNER JOIN table_two t2 
       ON t1.group = t2.groupid 
     INNER JOIN table_three t3 
       ON t2.groupid = t3.groupid 
     INNER JOIN table_four t4 
       ON t3.rights = t4.rights 
WHERE t1.id = :id 

Hinweis: Ändern where Zustand wie pro Ihre Anforderung.

+0

Was bedeutet '=: id' in' WO t1.id =: id 'gemein? –

+0

Ich habe diesen Fehler 'Nicht eindeutige Tabelle/Alias:' user_rights'' warum ist das? Ich denke, ich habe keinen Fehler in meinem Tabellennamen. –

Verwandte Themen