簡體   English   中英

在oracle SQL查詢中為聯接條件中的列提供默認值

[英]Giving default values for columns in join condition in oracle SQL Query

我有3張桌子

用戶(用戶名,用戶名)

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

角色(roleid,roleName)

101,Agent
102,User
103,Manager

user_role_map(userId,roleId)

1,102
2,103
3,101

我需要在查詢中獲取以下詳細信息。 如果user_role_map中沒有用戶記錄,則我需要將RoleName設置為NONE

用戶名,用戶名,角色名

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

以下查詢未返回用戶ID 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

試試看-未經測試,但對我來說似乎正確

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM