2017-02-17 79 views
-1

我在數據庫中有以下用戶/角色表結構。我想設置一個角色(例如,用戶的「CUSTOMER」)。這樣角色ID將被插入到User_Roles表以及相應的用戶ID中。什麼是正確的SQL查詢?SQL插入用戶角色

我嘗試這樣做:

INSERT INTO user_roles (user_id, role_id) 
SELECT users.id, 3 
FROM users 
WHERE users.id = 1 

有沒有更好的方式來做到這一點?其中數字「2」代表你想給角色的用戶的ID

INSERT INTO User_Roles VALUES(2,(SELECT id FROM Roles WHERE Role = "CUSTOMER")); 

---- 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

你可以這樣做:

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'; 
0

您可以執行以下代碼。