外连接两个表

时间:2016-05-04 14:48:40

标签: oracle join outer-join

我有两个表,ROLE和ROLE_DESC。

ROLE看起来像这样。

PS_ROLE_SEQ  NUMBER,    
PS_SEQ       NUMBER,    
ROLE_TYPE            VARCHAR2(2 CHAR),    
SOURCE               VARCHAR2(128 CHAR)

ROLE_DESC看起来像这样。

ROLE_TYPE  VARCHAR2(2 CHAR),    
ROLE_NAME  VARCHAR2(16 CHAR)

正如您所期望的那样,ROLE_TYPE的{​​{1}} and的{​​{1}}互相引用。 ROLE_TYPE中有三个实体,就像这样。

ROLE_DESC

我想通过加入两个表来打印整个ROLE_DESCROLE_TYPE ROLE_NAME A Account M Manager S Sales ,即使role_type表没有某个role_name。 例如,如果PS_SEQ = 111没有'S'ROLE。我试过了,但是我只是在下面。

ROLE_TYPE

结果:

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

外连接是否可以实现?你能否提出一些线索来解决这个问题?

1 个答案:

答案 0 :(得分:0)

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子句中时,您过滤结果。并且在结果中ROLE.PS_SEQ是Null for Sales并且Null<> 111