查询具有复杂关系的五个表

时间:2016-03-21 13:53:06

标签: mysql

我有三张桌子。这是一个例子

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

我想获得usernameid以及group的{​​{1}}信息,以及username所有rights的信息是group的{​​{1}}(或group = user' s groupie),user的{​​{1}}在groupid上分配的name

是否可以只有一个查询?

1 个答案:

答案 0 :(得分:0)

尝试此操作,不要忘记更改:id条件下的where

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 

注意:根据您的要求更改where条件。

相关问题