我有三个表,一个User table
,一个Company table
和一个linking table
来分配用户角色。我正在尝试更新user_role
表,以便其关联公司的所有用户具有相同的角色。角色表看起来像这样:
+---------+---------+------------+
| role_id | user_id | company_id |
+---------+---------+------------+
| 2 | 54 | 30 |
| 15 | 1 | 15 |
| 14 | 87 | 32 |
| 15 | 88 | 33 |
| 15 | 106 | 3 |
+---------+---------+------------+
我想要逻辑上做的是这样的
INSERT INTO user_role
(user_id, company_id, role_id)
VALUES (
(SELECT user_id FROM user_role WHERE company_id = ##FIRST COMPANY_ID IN LIST##),
(##LIST OF COMPANY_ID'S##), 2
);
我有一个company_id的静态列表,我希望在该公司中为该公司中具有任何角色的所有用户分配一个额外的静态role_id。完成此任务的最佳方法是什么?我应该查看存储过程吗?
答案 0 :(得分:0)
INSERT INTO user_role (user_id, company_id, role_id)
SELECT user_id, company_id, { new role id here }
FROM user_role
WHERE company_id in ( { list of company id's here })