表批准人:内加入的3个表
No Userid
1 3
2 7
表用户:
No UserID RoleID
1 3 1
2 4 1
3 5 2
4 7 3
表角色
RoleID Name
1 ABC
2 BCD
3 CDE
我想在表审批等来选择用户的角色名:
Userid Name
3 ABC
7 CDE
表批准人:内加入的3个表
No Userid
1 3
2 7
表用户:
No UserID RoleID
1 3 1
2 4 1
3 5 2
4 7 3
表角色
RoleID Name
1 ABC
2 BCD
3 CDE
我想在表审批等来选择用户的角色名:
Userid Name
3 ABC
7 CDE
我不是100%肯定,为什么approver.no是对用户和审批表....我要去假设用户id是独一无二的在这两种情况下,如果.....那的情况下这应该工作:
select
u.userid,
r.name
from
Approver as a
inner join [Users] as u on a.userId = u.UserId
inner join [Roles] as r on u.roleId = r.roleId
如果情况并非如此,你所需要的approver.no user.UserI d组合是唯一比下面应该工作:http://sqlfiddle.com/#!3/0daa9/4
注意到第二个查询返回对一个结果:
select
u.userid,
r.name
from
Approver as a
inner join [Users] as u on a.userId = u.UserId
and a.No = u.No
inner join [Roles] as r on u.roleId = r.roleId
这两个至于结果集的担忧可以在这里找到之间的差异提供的数据
SELECT U.UserID,
Name
FROM Approver A
JOIN Users U
ON A.UserId = U.UserId
JOIN Roles R
ON R.RoleId = U.RoleId
select
a.Userid,
r.Name
from
Approver a
join Users u on a.no = u.no
join Roles r on u.RoleID = r.RoleID
SELECT Approver.UserId, Name from Approver INNER JOIN Users
on Approver.No=Users.No
INNER JOIN Roles
on Users.RoleID=Roles.RoleID
到目前为止,您尝试了什么以及您的解决方案存在什么问题? – Pred 2014-09-24 11:06:52