我的MySQL数据库中有一个用户角色多对多关系。因此,我有一个映射表连接两个表的ID。 映射表看起来像这样:
ID of User | ID of Role
---------- | ----------
1 | 1
1 | 2
2 | 1
2 | 3
用户表
Firstname of User | ID of User
----------------- | ----------
ExampleUser1 | 1
ExampleUser2 | 2
角色的表
Name of Role | ID of Role
----------------- | ----------------
ExampleRole1 | 1
ExampleRole2 | 2
ExampleRole3 | 3
我希望我的映射表看起来像这样:
Firstname of User | Name of Role
----------------- | ------------
ExampleUser1 | ExampleRole1
ExampleUser1 | ExampleRole2
ExampleUser2 | ExampleRole1
ExampleUser2 | ExampleRole3
实现这个的SQL-Query是什么?
答案 0 :(得分:2)
您需要连接所有三个表,并使用映射表将ID替换为名称:
SELECT u.name, r.name
FROM user u
JOIN user_role ur ON u.id = ur.user_id
JOIN role r ON r.id = ur.role_id
答案 1 :(得分:2)
您可以使用连接
来实现此目的select user.user_name, roles.role_name from mapping_table
inner join user on user.id = mapping_table.user_id
inner join roles on role.id = mapping_table.role.id