2012-02-15 13 views
0

MVCパターン、PHP、MysqlのMySQLのクエリは

テーブルにアクセスユーザー|合格

モジュール Id |名前(ユーザー、管理者、ギャラリーなど)

許可 ID |名前(例:追加、削除、読み取り、更新)

レベル ID |モジュール(ex。gallery)| Cod_Permission(例10)|管理者(例:user123)

だから、クエリを持っている愛:

 
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 
のような1行で同じモジュールのグループすべてが結果たい

これを作る方法は?

のTy

答えて

0

このような何か -

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%を確認することはできませんが、これはあなたが正しい方向に向かっ取得する必要があります正確に何を知らず。

+0

完璧なソリューションのための

 GROUP BY n.Modulo, p.Nome, n.Administrador 

を唯一の感謝の男、GROUP BYにp.Nomeを削除! – user1149440

0

nnichols nice dudeeee!

SOLUTION: 同じクエリあなた、唯一の変更:

 
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