如何将一个表中的多个值插入到另一个表中?

时间:2019-01-28 15:06:08

标签: sql-server

我在SQL Server中有三个表:

用户表:

[user_id]       [other_columns]

权限表:

[permission_id] [other_columns]

Users_Permissions表(多对多联接表):

[user_id]       [permission_id]

我需要一次将相同的权限应用于多个用户,并将user_idpermission_id插入users_permissions表中。

例如,我需要将users表中的 all 个用户链接到permission_id#5。我可以使用以下代码单独执行此操作:

INSERT INTO users_permissions (user_id, permission_id) VALUES (1, 5);

但是我该如何为users表中的所有用户批量执行此操作?

奖金: 是否可以为每个用户都包含多个permission_id?因此,如果我想对全部50个用户应用insert 8权限,该怎么办?

1 个答案:

答案 0 :(得分:1)

INSERT INTO users_permissions (user_id, permission_id) 
SELECT UserId, 5
FROM User

要执行多个操作,可以使用交叉连接。下面将为每个用户插入1到4的权限

 INSERT INTO users_permissions (user_id, permission_id) 
 Select UserId, PermissionId
 From User
        Cross Join permissions 
 Where PermissionId in (1,2,3,4)