【发布时间】:2015-11-06 12:03:08
【问题描述】:
我查看了其他帖子以及有关用 ANSI 格式连接替换旧样式 (+) 连接的 Oracle 文档。我很难将其转换为我认为是两个左外连接操作。我的挂断是 select 语句中的两个以及应该放置连接的确切位置。
这是我的查询:
SELECT
AUP.USERNAME,
AUP.MENU_STRING MODULE,
NVL(UGA.PERMISSION,AUP.DEFAULT_PERMISSION) PERMISSION
FROM
(SELECT
DU.USERNAME,
A.PROGRAM_ID,
A.MENU_STRING,
'Y' DEFAULT_PERMISSION
FROM
APPLICATION A,
DBA_USERS DU
WHERE
A.PROGRAM_ID NOT IN ('.SEPARATOR')
AND DU.USERNAME NOT LIKE '%#') AUP,
(SELECT
USER_ID,
PROGRAM_ID,
PERMISSION
FROM
USER_PGM_AUTHORITY
WHERE
PROGRAM_COMPONENT='PROGRAM') UGA
WHERE
AUP.USERNAME=UGA.USER_ID(+)
AND AUP.PROGRAM_ID=UGA.PROGRAM_ID(+)
AND aup.menu_string = 'Vendor Maintenance'
ORDER BY
AUP.USERNAME,
AUP.MENU_STRING;
【问题讨论】: