我有3个表,其中一个角色具有许多权限,这些权限位于Roledetail
表中,我必须从这些表中找到PermissionName, RoleId, RoleName, RoleDescription
:
[Role], Permission, RoleDetail
表[Role]
包含以下列:
RoleID, RoleName, RoleDescription
和表格Permission
包含以下列:
PemissionId, PermissionName
表RoleDetail
包含以下列:
RoleDetailId, PermissionId, RoleID
我想根据RoleId, RoleName, RoleDescription, PermissionName
表中的给定permissionId
显示列RoleDetail
在这里我到目前为止
Alter PROCEDURE usp_GetRoleDetails
@proleId int
AS
BEGIN
SET NOCOUNT ON;
Select r.RoleId,r.RoleName,r.[Description],permissionName from
[Role]r
Inner join RoleDetail d on d.RoleDetailId = r.RoleID
Inner join Permission p on p.PermissionId = d.PermissionId
where r.RoleId = @proleId
END
GO
答案 0 :(得分:2)
我想你想要这个
Select RoleId,RoleName,RoleDescription,permissionName from
RoleDetail
Inner join [Role] on RoleDetail.RoleDetailId = Role.RoleID
Inner join Permission on Permission.PemissionId = RoleDetail.PemissionId
答案 1 :(得分:0)
一个简单的SQL连接可以解决这个问题。 SQL连接有助于从您的案例中获取多个表中的数据。连接所需要的是让表具有主键 - 外键关系,例如您的案例中的PermissionId和RoleDetail列。但是要非常小心,如果join的on子句不正确,join也可以给你重复的记录。有关SQL连接的介绍,请参阅here。