- 14
- 0
- 约3.83万字
- 约 11页
- 2016-08-27 发布于河南
- 举报
左外连接、右外连接的区别
左外连接、右外连接的区别
左外连接、右外连接的区别???
外连接: 要把不匹配的记录也要找出来(一个都不能少)
会使用一方表中的所有记录去和另一表中的记录按条件匹配,空值也会匹配,这个表中的所有记录都会显示,数据库会模拟出记录去和那些不匹配的记录匹配。
语法:
左外连接:
outer join:
from t1 left join t2
on t1.c1=t2.c2
右外连接:
from t1 right join t2
on t1.c1=t2.c2
对于外连接(left)时,t1必须做驱动表
对于外连接 (right) ,t2做驱动表
没有匹配记录的,会依然补一个null,然后将其放入结果集中
外连接的结果集包含内连接,他的结果集是内连接的结果集+匹配不上的记录
一、左外连接:在这里e表是驱动表,m表是匹配表,将前面的e表(驱动表)中所有列全都显示出来
如果换成(+)形式的写法,(+)放在匹配表一方,是要将驱动表中的所有记录全都列出来
select e.first_name employee, m.first_name manager
from s_emp e left join s_emp m
on e.manager_id = m.id
1 select e.first_name employee, m.first_name manager
2 from s_emp e , s_emp m
3 where e.manager_id = m.id(+);
二、右外连接:
1 select e.ename,e.deptno,d.deptno
2 from emp e right join dept d
3* on e.deptno = d.deptno;
d是驱动表,e是匹配表,将d表(驱动表)的所有记录全都显示出来
select e.ename,e.deptno,d.deptno
from emp e,dept d
where e.deptno(+)=d.deptno;
在这里d表是驱动表,在匹配表后面加(+)
d是驱动表,e是匹配表,将d表(驱动表)的所有记录全都显示出来
匹配前过滤?匹配后过滤?
如果加and e.ename(+)=SMITH
select d.dname
from emp e,dept d
where e.deptno(+)=d.deptno
and e.ename(+)=SMITH
and e.empno is null;
这两个过滤条件,如果有(+)在连接前做,没有的在连接后做,相对于where
内连接:匹配
外连接用来解决什么问题?与不匹配有关系的时候就想到外连接
总结:右外连接使用right join 。。。on,(+)放在=的左边
左外连接使用 left join。。。on,(+)放在=的右边
三、外连接+where is null,解决的是空记录的问题,因为,有的时候,我们就是要使用空的这条记录
1 select e.ename,e.deptno,d.deptno
2 from emp e right join dept d
3 on e.deptno = d.deptno
4* where e.empno is null
注意:4* where e.empno is null,一定是匹配表中的字段
例:右外连接查询员工和领导
1 select e.first_name,m.first_name
2 from s_emp e right join s_emp m
3* on e.manager_id = m.id
结果:
FIRST_NAME FIRST_NAME
------------------------- -------------------------
Audry Carmen
Mark Carmen
Midori Carmen
LaDoris Ca
您可能关注的文档
- 家庭装修必读(八大注意事项).doc
- 家禽用药指南.doc
- 家装材料用量计算.doc
- 家装小介绍.doc
- 家长会活动策划方案.doc
- 宽带连接错误691(由于域上的用.doc
- 宿管会机构及制度.doc
- 富士G9变频器.doc
- 对外汉语教学试题问答题.doc
- 对外汉语考研形式分析.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)