`
wsql
  • 浏览: 11776538 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Oracle 左连接、右连接小记

 
阅读更多

有两张表:tbl_employee 员工信息表、tbl_position 岗位表

tbl_employee{

id,

name,

p_id

}

tbl_position{

p_id,

p_name

}

需求一:将所有员工信息列出,并带出岗位信息,有的员工可能没有岗位信息,所以可以使用外连接实现。

主流数据库通用的使用方法:左连接实现

select e.name,p.p_name

from tbl_employeee

left jointbl_position p

on (e.p_id=p.p_id)

在Oracle中可以使用更简单的方式:对于外连接,Oracle中可以使用“(+)”来表示.

select e.name,p.p_name

from tbl_employeee,tbl_position p

where e.p_id=p.p_id(+)

需求二:将所有岗位信息列出,并将该岗位下的人员信息列出,有的岗位下可能没有人员,所以可以使用外连接实现。

主流数据库通用的使用方法:右连接实现

select e.name,p.p_name

from tbl_employeee

right jointbl_position p

on (e.p_id=p.p_id)

在Oracle中可以使用:

select e.name,p.p_name

from tbl_employeee,tbl_position p

where e.p_id(+)=p.p_id

需求三:将所有岗位信息和所有的人员信息列出,包括没有对应岗位的员工记录和没有任何员工的岗位记录,所以可以使用全外关联实现。

普通数据库使用:左连接实现

select e.name,p.p_name

from tbl_employeee

full jointbl_position p

on (e.p_id=p.p_id)

小结:

一、我们在数据查询中主要的连接无非是这几个: left join、right join 、full join、cross join

1、left join 左向外连接,返回左边表所有符合条件的记录,简单理解就是将左边的表作为主要显示表;

2、right join 右向外连接,返回右边表所有符合条件的记录,简单理解就是将右边的表作为主要显示表

3、full join 完整外部连接,它是左向外连接和右向外连接的合集;

4、cross join交叉连接,也称笛卡儿积。返回左表中的每一行与右表中所有行的组合。

二、Orcal 中(+) 的使用

我们可以简单地理解为: (+)所在字段的表的对应另一个表为主要显示表。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics