在连接的表上写一个查询

时间:2015-04-06 13:01:12

标签: sql-server-2008

我有3个彼此有外键的表。我想编写一个SQL Server存储过程来从其中一个中选择记录。

  1. msUserUserId - (主键),fkRoleId - (msRole的外键)
  2. msRoleRoleId - (主键),fkrUserId - (msUser的外键)
  3. tblUserRoleUserRoleId(主键),fkUrRoleId - (msRole的外键)
  4. 如何从SQL Server 2008中的所有这三个表中获取特定用户的详细信息?

    我的尝试:

    select*from msuser
    left join tblUserRole on urUserId = UserId
    left join msRole on RoleId = UrRoleId
    where userId = 1
    

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;