首页 > 解决方案 > 如何将一个表中的多个值插入到另一个表中?

问题描述

我在 SQL Server 中有三个表:

用户表:

[user_id]       [other_columns]

权限表:

[permission_id] [other_columns]

Users_Permissions 表(多对多连接表):

[user_id]       [permission_id]

我需要一次对多个用户应用相同的权限并将 and 插入user_idpermission_idusers_permissions

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

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

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

奖励: 是否可以permission_id为每个用户添加多个?因此,如果我想为所有 50 个用户应用 insert 8 权限,我该怎么做?

标签: sql-server

解决方案


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)

推荐阅读