У меня есть этот sql запрос
SELECT e.permission_name
FROM ((((users_roles a
INNER JOIN users b
ON a.user_id = b.id)
INNER JOIN roles c
ON a.role_id = c.id)
INNER JOIN roles_permissions d
ON c.id = d.role_id)
INNER JOIN permissions e
ON d.permission_id = e.id)
WHERE b.id = :id
Я добавил круглые скобки, поскольку MS Access требует этого, но он не работает.
Я использую MS Access в PHP
Удалите (), позвольте доступу добавить их обратно.






Я не думаю, что вам нужно ставить скобки, это может привести к синтаксической ошибке. Просто снимите брекеты
SELECT e.permission_name
FROM users_roles a
INNER JOIN users b ON a.user_id = b.id
INNER JOIN roles c ON a.role_id = c.id
INNER JOIN roles_permissions d N c.id = d.role_id
INNER JOIN permissions e ON d.permission_id = e.id
WHERE b.id = :id
Я бы посоветовал написать такой запрос:
SELECT p.permission_name
FROM (((users_roles as ur INNER JOIN
users as u
ON ur.user_id = u.id
) INNER JOIN
roles as r
ON ur.role_id = r.id
) INNER JOIN
roles_permissions as rp
ON r.id = rp.role_id
) INNER JOIN
permissions as p
ON rp.permission_id = p.id
WHERE u.id = :id;
Единственное реальное отличие от вашей версии - это использование as для псевдонимов таблиц.
Что именно не работает?