0

我有三个表, a User table, aCompany table和 alinking 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。实现这一目标的最佳方法是什么?我应该看一个存储过程吗?

4

1 回答 1

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 })
于 2012-08-02T14:39:26.413 回答