作为SQL查询的结果插入表值

时间:2017-02-14 10:40:00

标签: mysql sql-server

我有三个表Users,Roles和UserRoles。用户有一个名为Id的主键,Roles有一个名为Id的主键,UserRoles有两个对用户和角色的外键引用,称为UserId和RoleId。

我需要在UserRoles中插入UserId,RoleId对作为用户和角色表上的SQL查询的结果。

查询是这样的:

SELECT ID FROM Users WHERE Email = 'something@something.com';

SELECT ID From Roles WHERE Name = 'Admin';

我需要像这样使用它们:

INSERT INTO UserRoles (UserId, RoleId) VALUES (SELECT ID FROM Users WHERE Email = 'something@something.com', SELECT ID From Roles WHERE Name = 'Admin');

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这应该对你有用..

  declare @userId int, @roleid int
    select @userId = Id FROM Users 
    select @roleid = Id from Roles
    insert into UserRoles (UserId, RoleId) value (@userId,@roleid)

请在选择查询中考虑您的居住条件。

答案 1 :(得分:1)

试试这个。

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';