我在 MySQL 中有三个不同的表:
给定一个用户 ID,我如何获取该用户的角色名称列表? 例如,user_id = 1 我需要一个这样的列表(1,deleteuser,modifyuser,viewuser)
如何构建 SQL 命令来获取这样的列表?
最佳答案
JOIN
这三个表如下所示:
SELECT
u.id,
r.Name
FROM user u
INNER JOIN user_role ur ON u.id = ur.user_id
INNER JOIN roles r ON ur.Role_id = r.id
WHERE u.id = Someid
但是,如果您希望将每个用户的角色列表连接成一个字符串。像这样使用 GROUP_CONCAT
:
SELECT
u.id,
GROUP_CONCAT(r.Name) roles
FROM user u
INNER JOIN user_role ur ON u.id = ur.user_id
INNER JOIN role r ON ur.Role_id = r.id
WHERE u.id = 1
GROUP BY u.id
SQL Fiddle Demo
关于mysql - 如何构造一个命令来连接 mySQL 中的 3 个不同的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284543/