表用户
|_id, | login |
---------------
| 1 | test |
表格角色
|_id, | role_name|
------------------
| 1 | Admin |
| 2 | Moderator|
| 3 | User |
表 User_Login
|用户 ID | role_id |
我想为 ID 为 1 的用户设置在查询中按他们的名字搜索的角色,这是我到目前为止得到的:
"INSERT INTO user_role
+ "(userId, roleId) VALUES (1, (SELECT r._id FROM roles r WHERE r.role_name IN ('Admin', 'Moderator', 'User')))"
事情是从角色中只设置了一个 Id 而不是 3
预期结果:
|user_id|role_id|
-----------------
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
我得到的是:
|user_id|role_id|
-----------------
| 1 | 1 |
最佳答案
是否使用 insert 。 . .选择
解决你的问题?
INSERT INTO user_role(userId, roleId)
SELECT 1, r._id
FROM roles r
WHERE r.role_name IN ('Admin', 'Moderator', 'User');
role_name
可能与 IN
列表中的内容不匹配。也许您应该只运行子查询并查看您得到的结果。
关于mysql - 同时插入状态和选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633553/