我有3个彼此有外键的表。我想编写一个SQL Server存储过程来从其中一个中选择记录。
msUser
:UserId
- (主键),fkRoleId
- (msRole的外键)msRole
:RoleId
- (主键),fkrUserId
- (msUser的外键)tblUserRole
:UserRoleId
(主键),fkUrRoleId
- (msRole的外键)如何从SQL Server 2008中的所有这三个表中获取特定用户的详细信息?
select*from msuser
left join tblUserRole on urUserId = UserId
left join msRole on RoleId = UrRoleId
where userId = 1
答案 0 :(得分:1)
我假设您的查询是您想要的方式。试试这个存储过程。
CREATE PROCEDURE dbo.yourProc(@userID INT)
AS
BEGIN
SELECT *
FROM msUser
LEFT JOIN tblUserRole ON tblUserRole.urUserId = msUser.UserId
LEFT JOIN msRole ON msRole.RoleId = tblUserRole.fkUrRoleId
WHERE msUser.UserId = @userID
END
GO
以下是如何使用存储过程。
EXEC dbo.yourProc @userID = 1;