欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle左外联和右外联

程序员文章站 2022-06-14 12:40:50
...

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

  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)

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

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

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

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

Oracle左外联和右外联