2017-02-14 31 views
0

我有三個表用戶,角色和UserRoles。用戶有一個稱爲Id的主鍵,Roles有一個名爲Id的主鍵,UserRoles有兩個外鍵引用用戶和角色叫UserId和RoleId。作爲SQL查詢的結果插入表值

我需要在UserRoles中插入一個UserId,RoleId對作爲用戶和角色表上的SQL查詢的結果。

的查詢是這樣的:

SELECT ID FROM Users WHERE Email = '[email protected]'; 

SELECT ID From Roles WHERE Name = 'Admin'; 

我需要使用它們像這樣:

INSERT INTO UserRoles (UserId, RoleId) VALUES (SELECT ID FROM Users WHERE Email = '[email protected]', SELECT ID From Roles WHERE Name = 'Admin'); 

我怎樣才能做到這一點。

回答

1

試試這個。

INSERT INTO UserRoles (UserId, RoleId) 
    SELECT a.ID, b.ID 
    FROM Users as a,Roles as b 
    WHERE a.Email='[email protected]' 
    AND b.Name='Admin'; 
1

這應該爲你工作..

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

請考慮您的WHERE條件爲選擇查詢。

+0

感謝您的回答。我必須接受@Manish給出的答案,因爲它不需要我知道sql columns字段的數據類型。 –

+1

可以有多種方式來實現相同的結果和路徑.. :) – user7417866