使用 MySql,我想通过给定的用户 ID 连接多个多对多表(users_roles 和 Roles_permissions)。 但是我的查询有问题,因为它给出了如下错误。
#1054 - Unknown column 'users_roles.role_id' in 'on clause'
SELECT roles.name, permissions.name
FROM users_roles, roles_permissions
JOIN roles ON users_roles.role_id = roles.id
JOIN permissions ON roles_permissions.permission_id = permissions.id
WHERE users_roles.user_id = 1 AND roles_permissions.role_id = roles.id
我在 PHPMyAdmin 中的表结构如下:
Table users_roles
id | user_id | role_id
Table roles_permissions
id | role_id | permissions_id
Table roles
id | name | description
Table permissions
id | name | description
最佳答案
我认为你应该使用一组正确的连接
SELECT roles.name, permissions.name
FROM users_roles
JOIN roles ON users_roles.role_id = roles.id
JOIN roles_permissions on roles_permissions.role_id = users_roles.role_id
JOIN permissions ON roles_permissions.permission_id = permissions.id
WHERE users_roles.user_id = 1
关于mysql - SQL JOIN 多个多对多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557349/