Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 外部连接两个表_Oracle_Join_Outer Join - Fatal编程技术网

Oracle 外部连接两个表

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

我有两张表,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           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不是同一个问题吗?不同,但目的相同。如果你愿意,我可以删除前面的问题。很抱歉让您感到困惑。我建议编辑第一个问题,然后关闭此问题的可能副本