Mysql 将值作为SQL查询的结果插入表中
我有三个表Users、Roles和UserRoles。用户有一个名为Id的主键,角色有一个名为Id的主键,UserRoles有两个对用户和角色的外键引用,分别称为UserId和RoleId 我需要在UserRoles中插入一个UserId,RoleId对,作为对Users和Roles表进行SQL查询的结果 查询如下所示:Mysql 将值作为SQL查询的结果插入表中,mysql,sql-server,Mysql,Sql Server,我有三个表Users、Roles和UserRoles。用户有一个名为Id的主键,角色有一个名为Id的主键,UserRoles有两个对用户和角色的外键引用,分别称为UserId和RoleId 我需要在UserRoles中插入一个UserId,RoleId对,作为对Users和Roles表进行SQL查询的结果 查询如下所示: SELECT ID FROM Users WHERE Email = 'something@something.com'; INSERT INTO UserRoles (Us
SELECT ID FROM Users WHERE Email = 'something@something.com';
INSERT INTO UserRoles (UserId, RoleId) VALUES (SELECT ID FROM Users WHERE Email = 'something@something.com', SELECT ID From Roles WHERE Name = 'Admin');
及
我需要这样使用它们:
SELECT ID FROM Users WHERE Email = 'something@something.com';
INSERT INTO UserRoles (UserId, RoleId) VALUES (SELECT ID FROM Users WHERE Email = 'something@something.com', SELECT ID From Roles WHERE Name = 'Admin');
我怎样才能做到这一点 这应该适合你
declare @userId int, @roleid int
select @userId = Id FROM Users
select @roleid = Id from Roles
insert into UserRoles (UserId, RoleId) value (@userId,@roleid)
请考虑选择查询的条件。
< P>这对你来说是有效的。 declare @userId int, @roleid int
select @userId = Id FROM Users
select @roleid = Id from Roles
insert into UserRoles (UserId, RoleId) value (@userId,@roleid)
请考虑选择查询的条件。
尝试此。
INSERT INTO UserRoles (UserId, RoleId)
SELECT a.ID, b.ID
FROM Users as a,Roles as b
WHERE a.Email='something@something.com'
AND b.Name='Admin';
试试这个
INSERT INTO UserRoles (UserId, RoleId)
SELECT a.ID, b.ID
FROM Users as a,Roles as b
WHERE a.Email='something@something.com'
AND b.Name='Admin';
谢谢你的回答。我必须接受@Manish给出的答案,因为它不需要我知道sql列字段的数据类型。可以有多种方法来实现相同的结果和路径:)谢谢你的回答。我必须接受@Manish给出的答案,因为它不需要我知道sql列字段的数据类型。可以有多种方法来实现相同的结果和路径:)