У меня есть 2 таблицы, с которыми я взаимодействую.
Первая таблица: acl_permissions (это просто обычная таблица).
+-----------------------------------+
| acl_permissions |
+----+-------------+----------------+
| id | name | permission |
+----+-------------+----------------+
| 1 | Add User | addUser |
| 2 | Edit User | editUser |
| 3 | Delete User | deleteUser |
| 4 | View User | viewUser |
| 5 | Test Name | testPermission |
+----+-------------+----------------+
Вторая таблица: acl_group_permissions - это таблица соединений.
+--------------------------------+
| acl_group_permissions |
+----+----------+----------------+
| id | group_id | permissions_id |
+----+----------+----------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 5 | 2 | 4 |
| 6 | 2 | 5 |
+----+----------+----------------+
У меня есть запрос, чтобы показать все разрешения, которые в настоящее время разрешены group_id '1'.
SELECT acl_permissions.id, acl_permissions.name, acl_permissions.permission
FROM acl_permissions
JOIN acl_group_permissions
ON acl_permissions.id = acl_group_permissions.permission_id
WHERE acl_group_permissions.group_id = 1
Результат:
+----+-------------+----------------+
| id | name | permission |
+----+-------------+----------------+
| 1 | Add User | addUser |
| 2 | Edit User | editUser |
| 3 | Delete User | deleteUser |
| 4 | View User | viewUser |
+----+-------------+----------------+
МОЯ ПРОБЛЕМА
Я хочу, чтобы запрос показывал все разрешения, которые не разрешены group_id '1'.
Желаемый результат будет:
+----+-------------+----------------+
| id | name | permission |
+----+-------------+----------------+
| 5 | Test Name | testPermission |
+----+-------------+----------------+
Самое близкое, что я должен к этому:
SELECT acl_permissions.id, acl_permissions.name, acl_permissions.permission
FROM acl_permissions
LEFT OUTER JOIN acl_group_permissions
ON acl_permissions.id = acl_group_permissions.permission_id
WHERE acl_group_permissions.group_id IS NULL
В результате получается:
+----+-------------+----------------+
| id | name | permission |
+----+-------------+----------------+
| 4 | View User | viewUser |
| 5 | Test Name | testPermission |
+----+-------------+----------------+
Как мне вставить group_id '1' в запрос, чтобы устранить идентификатор 4.
Я много гуглил, но я нахожу примеры и решения, которые близки, но точны к моей ситуации.
IE: используя соединительную таблицу. Моя инфографика MySQL Join Types также не поможет.
Помогите..! Мой мозг тает ..!