Добрый вечер. Сижу над проблемой уже целый час. Есть 3 таблицы:
1. role (id, ...)
2. permission (id, ...)
3. role_permission (id, role_id, permission_id)
Как видно, таблица role_permission является связующим звеном. Моя задача следующая: нужно выбрать все роли с их правами доступа. Мой рабочий запрос:
CODE ( SQL):
скопировать код в буфер обмена
SELECT `rp`.*, `r`.`role`, `r`.`id` AS `role_id`, `p`.`id` AS `permission_id`, `p`.`name` AS `permission` FROM `role_permission` AS `rp` RIGHT JOIN `role` AS `r` ON r.id = rp.role_id RIGHT JOIN `permission` AS `p` ON p.id = rp.permission_id
Но он выбирает только те роли, для которых есть права доступа. А нужно выбрать и все роли и все права доступа. Вне зависимости от того, есть ли запись в role_permission или нет.
|