Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将值作为SQL查询的结果插入表中_Mysql_Sql Server - Fatal编程技术网

Mysql 将值作为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

我有三个表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 (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列字段的数据类型。可以有多种方法来实现相同的结果和路径:)