MySQL查询的管理员级别的访问权限
问题描述:
MVC模式,PHP,Mysql的MySQL查询的管理员级别的访问权限
表:
联系 ID |用户|通过
模块 Id |名称(例如用户,管理员,图库)
权限 Id |名称(例如添加,删除,读取,更新)
级别 Id |模块(例如图库)| Cod_Permission(例如10)|管理员(前user123)
所以的AI查询:
SELECT n.Modulo, p.Nome AS Tipo, n.Administrador AS Nome, n.Cod_Permissao FROM niveis AS n Inner Join modulos AS m ON n.Modulo = m.Nome Inner Join permissoes AS p ON n.Cod_Permissao = p.Codigo WHERE n.Administrador = 'user123'
返回:
Id -> Module -> Cod_Permission -> Administator 1 gallery 1 user123 2 gallery 2 user123
我想组中的所有结果在同一模块中这样一行
Id -> Module -> Read -> Update -> Delete -> Insert -> Username 1 gallery 1 0 0 4 user123
如何做到这一点?
泰
答
事情是这样的 -
SELECT
n.Modulo,
p.Nome AS Tipo,
n.Administrador AS Nome,
SUM(IF(n.Cod_Permissao = 1, 1, 0)) AS Read,
SUM(IF(n.Cod_Permissao = 2, 1, 0)) AS Update,
SUM(IF(n.Cod_Permissao = 3, 1, 0)) AS Delete,
SUM(IF(n.Cod_Permissao = 4, 1, 0)) AS Insert
FROM niveis AS n
INNER JOIN modulos AS m
ON n.Modulo = m.Nome
INNER JOIN permissoes AS p
ON n.Cod_Permissao = p.Codigo
WHERE n.Administrador = 'user123'
GROUP BY
n.Modulo,
p.Nome,
n.Administrador
没有确切知道什么是不同的字段我不能100%肯定,但是这应该让你在正确的方向前进。
答
nnichols nice dudeeee!
SOLUTION: 相同的查询你的,只有改变:
GROUP BY n.Modulo, p.Nome, n.Administrador
为
GROUP BY n.Modulo, n.Administrador
SELECT n.Modulo, p.Nome AS Tipo, n.Administrador AS Nome, SUM(IF(n.Cod_Permissao = 1, 1, 0)) AS Ler, SUM(IF(n.Cod_Permissao = 2, 2, 0)) AS Atualizar, SUM(IF(n.Cod_Permissao = 3, 3, 0)) AS Excluir, SUM(IF(n.Cod_Permissao = 4, 4, 0)) AS Inserir FROM niveis AS n INNER JOIN modulos AS m ON n.Modulo = m.Nome INNER JOIN permissoes AS p ON n.Cod_Permissao = p.Codigo WHERE n.Administrador = 'kin' GROUP BY n.Modulo, n.Administrador
完美解决方案只能在组中删除p.Nome BY感谢伙计! – user1149440 2012-02-16 18:41:15