0

我有 3 张桌子

用户(用户名,用户名)

1,Ram
2,Krishna
3,Madhu
4,Deepak

角色(roleid,角色名称)

101,Agent
102,User
103,Manager

user_role_map(userId,roleId)

1,102
2,103
3,101

我需要在查询中获取以下详细信息。如果 user_role_map 中没有用户的记录,我需要将 RoleName 设置为 NONE

用户 ID、用户名、角色名

1,Ram,User
2,Krishna,Manager
4,Deepak,NONE

以下查询未返回 UserID 4

SELECT  u.UserID
    ,   u.UserName
    ,   r.RoleName
FROM users u, roles r, user_role_map ur
WHERE u.UserID = ur.UserID
    AND r.roleid = ur.roleid
4

1 回答 1

0

试试这个 - 未经测试,但它看起来对我来说

select 
  u.UserID, u.UserName, IsNull(r.roleName, 'NONE') 
from 
  users u
  left join user_role_map ur on
    ur.UserId = u.UserId
  left join roles r on
    r.roleid=ur.roleid 
于 2013-09-03T08:14:54.487 回答