0

私は3つのテーブルを持っています

users(ユーザーID,ユーザー名)

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

役割(役割ID、役割名)

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 に答える