Oracle左外联和右外联
说明﹐左或右连接查询实际上是指定以哪个表的数据为准﹐而默认(不指定左或右连接)是以两个表中都存在关键列的数据的为准。
create or replace view V_WTK_ALL as
select a.id, o.short as FindDeptName, u.realname as FindUserName, f.name as FindWay, o1.short as ProblemAtDeptName,
z.name as szzz, a.yhnr, s.name as SSZY, k.name as kind, w.name as whhg, a.zgcs, a.zgfzr, a.plandate, a.finishdate,
u1.realname as jdr, u2.realname as fxr, a.yqzt, a.yqdate, a.wtkzt
from WTK a, ORGANIZATION o, ORGANIZATION o1, OPERATORS u,OPERATORS u1,OPERATORS u2, Kind k, Findway f, SPfield s, SZZZ z, WHHG w
where a.finddeptid =o.id(+) and a.problematdeptid=o1.id(+) and a.finduserid=u.id(+) and a.jdr=u1.id(+) and a.fxr=u2.id(+)
and a.kindid=k.id(+) and a.findwayid=f.id(+) and a.spfieldid=s.id(+) and a.szzid =z.id(+) and a.whhgid=w.id(+)
有两个表
table1
user_id user_name user_pss
1 aaa a
2 bbb b
3 ccc c
table2
user_id user_power
1 111000
2 000111
使用sql语句查询
正常状态:
select table1.user_id,
table1.user_name,
table2.user_power
from table1,table2
where table1.user_id = table2.user_id
但是这样检索到的数据只有两条:
user_id user_name user_power
1 aaa 000111
2 bbb 111000
输入你想转换的文字内容,
点击下面按钮进行在线转换。
select table1.user_id,table1.user_name,table2.user_power
from table1,table2
where table1.user_id (+)= table2.user_id
就可以得到如下的结果
user_id user_name user_power
1 aaa 000111
2 bbb 111000
3 ccc (null)
说明﹐左或右连接查询实际上是指定以哪个表的数据为准﹐而默认(不指定左或右连接)是以两个表中都存在关键列的数据的为准。
内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来
左连接是只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来
右连接是只要右边表中有记录,数据就能检索出来
,