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)

  说明﹐左或右连接查询实际上是指定以哪个表的数据为准﹐而默认(不指定左或右连接)是以两个表中都存在关键列的数据的为准。

  内部连接是两个表中都必须有连接字段的对应值的记录,数据才能检索出来

  左连接是只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来

  右连接是只要右边表中有记录,数据就能检索出来

相关内容