我有三个表。下面是一个示例
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 |
---------------------------------------------
我想获取username
,id
该username
的group
信息,以及所有rights
,其中group
是对于user
的group
(或者简单地说,groupie
= user
的groupid
),然后在user
上分配rights
的name
。
是否可以只有一个查询?
试试这个,不要忘记在where
条件下更改:id
。
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
条件。