我在数据库中有以下用户/角色表结构。我想设置一个角色(例如,用户的“CUSTOMER”)。这样角色id将被插入到User_Roles表中以及相应的用户ID。什么是正确的SQL查询?
我试过了:
INSERT INTO user_roles (user_id, role_id)
SELECT users.id, 3
FROM users
WHERE users.id = 1
有更好的方法吗?
---- Users Table ---------
ID | UserName | Password
1 | SomeUser | *****
--------------------------
---- Roles Table ---------
ID | Role
1 | CUSTOMER
2 | ADMIN
--------------------------
---- User_Roles Table ---------
UserID | RoleID
1 | 1
1 | 2
-------------------------------
答案 0 :(得分:0)
您可以执行以下代码:
INSERT INTO User_Roles VALUES(2,(SELECT id FROM Roles WHERE Role = "CUSTOMER"));
数字“2”表示您要为其提供角色的用户的ID。
答案 1 :(得分:0)
你可以这样做:
INSERT INTO user_roles (user_id, role_id)
VALUES ( 1, 3 );
如果您想按名称进行操作:
INSERT INTO user_roles (user_id, role_id)
SELECT 1, r.role_id
FROM roles r
WHERE r.name = 'CUSTOMER';