sql-server - 如何将一个表中的多个值插入到另一个表中?
问题描述
我在 SQL Server 中有三个表:
用户表:
[user_id] [other_columns]
权限表:
[permission_id] [other_columns]
Users_Permissions 表(多对多连接表):
[user_id] [permission_id]
我需要一次对多个用户应用相同的权限并将 and 插入user_id
表permission_id
中users_permissions
。
例如,我需要将表中的所有用户链接到#5。我可以使用以下代码单独执行此操作:users
permission_id
INSERT INTO users_permissions (user_id, permission_id) VALUES (1, 5);
但是我将如何为users
表中的所有用户批量执行此操作?
奖励:
是否可以permission_id
为每个用户添加多个?因此,如果我想为所有 50 个用户应用 insert 8 权限,我该怎么做?
解决方案
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)
推荐阅读
- excel - 如何实现变量并优化以下代码?
- spring - Maven 中缺少的方法:org.springframework.hateoas:spring-hateoas:1.0.0.M3 库 Entitylinks 类
- javascript - 如果数组结束 javascript 从头开始切片
- java - 杰克逊:无法在不提供 id 的情况下明确指示多态性中的目标类?
- c# - 如何查找 Windows 日语键盘设置的注册表项?
- javascript - 如何正确切换课程?
- mysql - 如何从mysql中的每个表中导出N条记录?
- laravel - 如何为更新帖子制作路由?
- javascript - 如何通过控制台将参数传递给网站上的 Javascript 函数
- iterm2 - iTerm2中热键窗口的动画