У меня есть 3 таблицы: Разрешения, Роли и RolePermissions.Я хотел бы иметь возможность выбрать роли, в которых отсутствуют новые строки в таблице разрешений на основе отношения таблицы RolePermissions, чтобы вставить эти значения после добавления новых разрешений.
Мне не повезло найти, как это можно сделать, поэтому я спрашиваю здесь.
Структура таблицы
Permissions | Roles | RolePermissions
------------------------------------------
Id | Id | Id
Name | Name | RoleId
| | PermissionId
Идея SQL, но я знаюэто не правильно:
-- Looking to be able to do something like
INSERT INTO RolePermissions (RoleId, PermissionId)
SELECT missingpermissions.PermissionId, missingpermissions.RoleId
FROM Permissions as p
INNER JOIN(
Select r.Id as RoleId, p.Id as PermissionId
FROM Role as r
LEFT JOIN RolePermissions as rp
ON r.Id = rp.RoleId
WHERE rp.PermissionId = p.Id
) as missingpermissions
ON p.id = missingpermissions.permissionid
Отредактировано в формате