Oracle 外部连接两个表
我有两张表,ROLE和ROLE_DESC 角色看起来像这样Oracle 外部连接两个表,oracle,join,outer-join,Oracle,Join,Outer Join,我有两张表,ROLE和ROLE_DESC 角色看起来像这样 PS_ROLE_SEQ NUMBER, PS_SEQ NUMBER, ROLE_TYPE VARCHAR2(2 CHAR), SOURCE VARCHAR2(128 CHAR) ROLE_TYPE VARCHAR2(2 CHAR), ROLE_NAME VARCHAR2(16 CHAR) ROLE_TYPE ROLE_NAME A
PS_ROLE_SEQ NUMBER,
PS_SEQ NUMBER,
ROLE_TYPE VARCHAR2(2 CHAR),
SOURCE VARCHAR2(128 CHAR)
ROLE_TYPE VARCHAR2(2 CHAR),
ROLE_NAME VARCHAR2(16 CHAR)
ROLE_TYPE ROLE_NAME
A Account
M Manager
S Sales
角色描述如下所示
PS_ROLE_SEQ NUMBER,
PS_SEQ NUMBER,
ROLE_TYPE VARCHAR2(2 CHAR),
SOURCE VARCHAR2(128 CHAR)
ROLE_TYPE VARCHAR2(2 CHAR),
ROLE_NAME VARCHAR2(16 CHAR)
ROLE_TYPE ROLE_NAME
A Account
M Manager
S Sales
正如您所期望的,角色的角色类型
和角色描述
的角色类型相互参照。ROLE\u DESC
中有三个实体,如下所示
PS_ROLE_SEQ NUMBER,
PS_SEQ NUMBER,
ROLE_TYPE VARCHAR2(2 CHAR),
SOURCE VARCHAR2(128 CHAR)
ROLE_TYPE VARCHAR2(2 CHAR),
ROLE_NAME VARCHAR2(16 CHAR)
ROLE_TYPE ROLE_NAME
A Account
M Manager
S Sales
我想通过连接两个表来打印整个角色类型
和角色名称
,即使角色
表没有特定的角色类型
。
例如,如果PS_SEQ=111没有“S”role_type
。我试过了,这个,但我只得到了下面
select ROLE_DESC.ROLE_TYPE, ROLE_DESC.ROLE_NAME, ROLE.SOURCE
FROM ROLE_DESC
LEFT OUTER JOIN ROLE
ON ROLE_DESC.role_type=ROLE.role_type
where ROLE.PS_SEQ = 111
结果:
A Account Bob
M Manager Sandy
事实上,我想得到以下信息
A Account Bob
M Manager Sandy
S Sales
外部连接是否使其成为可能?你能为这个问题提供一些线索吗
select ROLE_DESC.ROLE_TYPE, ROLE_DESC.ROLE_NAME, ROLE.SOURCE
FROM ROLE_DESC
LEFT OUTER JOIN ROLE
ON ROLE_DESC.role_type=ROLE.role_type AND ROLE.PS_SEQ = 111
当它位于WHERE子句中时,将过滤结果。在result ROLE.PS_SEQ中,Sales和Null 111不是同一个问题吗?不同,但目的相同。如果你愿意,我可以删除前面的问题。很抱歉让您感到困惑。我建议编辑第一个问题,然后关闭此问题的可能副本