oracle中的外连接简单介绍

原创 2007年09月12日 19:11:00
 在讲外连接之前,先举例介绍内连接,也就是一般的相等连接。

select * from a, b where a.id = b.id;

对于外连接,oracle中可以使用“(+)”来表示,9i可以使用left/right/full outer join,下面将配合实例一一介绍。

1. left outer join:左外关联


select e.last_name, e.department_id, d.department_name  from employees e  left outer join departments d  on (e.department_id = d.department_id);


等价于

select e.last_name, e.department_id, d.department_name  from employees e, departments d  where e.department_id=d.department_id(+);


结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。

2. right outer join:右外关联

select e.last_name, e.department_id, d.department_name  from employees e  right outer join departments d  on (e.department_id = d.department_id);


等价于

select e.last_name, e.department_id, d.department_name  from employees e, departments d  where e.department_id(+)=d.department_id;


结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。

3. full outer join:全外关联

select e.last_name, e.department_id, d.department_name  from employees e  full outer join departments d  on (e.department_id = d.department_id);


结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录和没有任何员工的部门记录。

Oracle中的外连接简单介绍

 本文转载于:http://www.souzz.net/html/database/ORACLE/4785.html
  • shandian534
  • shandian534
  • 2008年07月16日 14:36
  • 446

Oracle中的外连接简单介绍

一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。   对于外连接: Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RI...
  • Terry_li
  • Terry_li
  • 2005年07月12日 10:54
  • 1480

Oracle中的外连接用法

在讲外连接之前,先举例介绍内连接,也就是一般的相等连接。 select * from a, b where a.id = b.id; 对于外连接,Oracle中可以使用“(+)”来表示...
  • wxlbrxhb
  • wxlbrxhb
  • 2012年03月26日 16:46
  • 483

Oracle (内连接)与(外连接)区别

表stu id name 1, Jack 2, Tom 3, Kity 4, nono 表exam id grade 1, 56 2, 76 11, 89 内连接(显示两表匹配的id) select ...
  • maxracer
  • maxracer
  • 2012年04月26日 14:59
  • 7909

Oracle外连接中对非连接条件使用(+)需要注意的地方

1.先来说下Oracle外连接语句中对非链接条件使用(+)的作用问题 之前问过朋友,当时大脑处于短路状态,居然没想明白作用是啥。先看例子如下: select * from dept,emp whe...
  • menghuanhuolong6
  • menghuanhuolong6
  • 2015年05月15日 14:12
  • 1061

Oracle 基本操作二:内连接,左连接,右连接,自连接,集合查询(union)

--多表查询-笛卡儿 (dept表有4条数据,emp表有两条数据,行是4*2=8条数据,列是两张表的所有列) select * from dept d, emp e  --内连接-等值连接,从两张表获...
  • nipanlong001
  • nipanlong001
  • 2017年04月18日 23:24
  • 199

oracle标准语法外连接和子查询外连接,而不采用ANSI连接

不使用ANSI连接,如inner join、left join、right join、full outer join,而使用(+)来表示外连接       错误的写法:       select ...
  • xieyuntestShow
  • xieyuntestShow
  • 2011年12月09日 13:21
  • 1803

oracle左外连接、右外连接、完全外连接以及(+)号用法

准备工作 oracle连接分为: 左外连接:左表不加限制,保留左表的数据,匹配右表,右表没有匹配到的行中的列显示为null。右外连接:右表不加限制,保留右表的数据。匹配左表,左表没有匹配到的行中列...
  • fly_zxy
  • fly_zxy
  • 2016年12月31日 11:53
  • 1053

oracle左外连接,右外连接,全外连接--实例讲解

看了网上一些例子,自己改了改,并做了实验,希望能把这个东西说明白。 先创建表,并插入数据: -- 部门表 CREATE TABLE departments ( depID NUMBER(...
  • lushuaiyin
  • lushuaiyin
  • 2012年03月14日 12:34
  • 2927

ORACLE 8i,9i 表连接方法全介绍

    一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。       对于外连接: Oracle中可以使用“(+) ”来表示,9i可以使...
  • zhuangwei517
  • zhuangwei517
  • 2007年05月22日 09:53
  • 367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle中的外连接简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)