Bonsoir,
Bon mon titre est pas très clair, je savais pas quoi mettre. Je vous explique:
J'ai 3 tables, "droits", "droits_groupes" et "groupes"
droits
- id
- name
droits_groupes (une table de liaison)
- id_droit
- id_groupe
groupes
- id
- name
Pour les données, par exemple
droits(id:name) 1:create, 2:update, 3:delete
groupes(id:name) 1:admin, 2:webmaster, 3:membres, 4:invites
droits_groupes(id_droit:id_groupe) 1:1, 2:1, 3:1, 2:1, 3:1
J'aimerai, en 1 requête, retourner:
Les champs: droits.name / admin / webmaster / membres / invites
create / 1 / 1 / 1 / 0
update / 1 / 0 / 0 / 0
delete / 1 / 0 / 0 / 0
Donc un SELECT d.name FROM droits AS d LEFT JOIN ..... la jointure.
J'ai déjà fait ça, avec des CASE groups.id IS NOT NULL THEN 1 ELSE 0, un truc comme ça, mais c'est il y a longtemps, on m'avait aidé, et je me souviens plus
Quelqu'un aurait une idée? J'ai été clair? pas évidement à expliquer!
L'idée est de retourner un tableau,avec en colonne, les groupes, en lignes les droits, et dans les cases, 1 si le groupe à le droit, 0 dans le cas contraire.
Précision: Je suis sous MySQL, la dernière version!
Merci
Mathieu
Partager