Sql server SQL Server从3个表插入查询
我有一个表Sql server SQL Server从3个表插入查询,sql-server,Sql Server,我有一个表Users,其中有3000条不同用户的记录 (UserID、用户名、登录邮箱、密码) 我有另一个表角色(RoleID,code,Name,Description),在这个表中我有20个角色 我有第三个表UserRoles(UserRoleID,UserID,RoleID)-此表当前为空 现在,我想编写一个查询或过程,根据..将数据插入UserRoles表中 从Users表中获取每个UserID,并从roles表中为其分配所有角色 假设UserRoleID是身份 insert into
Users
,其中有3000条不同用户的记录
(UserID、用户名、登录邮箱、密码
)
我有另一个表角色
(RoleID,code,Name,Description
),在这个表中我有20个角色
我有第三个表UserRoles
(UserRoleID,UserID,RoleID
)-此表当前为空
现在,我想编写一个查询或过程,根据..将数据插入UserRoles
表中
- 从
表中获取每个Users
,并从UserID
表中为其分配所有角色roles
UserRoleID
是身份
insert into userRoles ( UserID, RoleID)
select u.UserID, r.RoleID
from user u cross join roles r
您可以使用任何生成用户和角色的连接(交叉连接或隐式连接),例如:
insert userroles (userid, roleid)
select u.userid, r.roleid
from users u
cross join roles r
或使用旧的隐式联接语法(ANSI SQL 92之前的版本):
这两个查询都假设UserRoleID是自动生成的标识字段,如果不是,则必须使用循环或窗口函数(如ROW_NUMBER())为该字段生成值
@MalikUsman难道你不知道如何接受一个有用的答案吗?看看这个:
insert userroles (userid, roleid)
select u.userid, r.roleid
from users u, roles r