`
风吹过
  • 浏览: 4663 次
文章分类
社区版块
存档分类
最新评论

oracle 左连接,右连接的使用

阅读更多
<div class="iteye-blog-content-contain" style="font-size: 14px"></div>

1. LEFT OUTER JOIN:左外连接
SELECT e.last_name, e.dept_id, d.name 
FROM s_emp e 
LEFT OUTER JOIN s_dept d 
ON (e.dept_id = d.id);
等价于
SELECT e.last_name, e.dept_id, d.name 
FROM s_emp e, s_dept d 
WHERE e.dept_id=d.id(+);
结果为:所有员工及对应部门的记录,包括没有对应部门编号dept_id的员工记录。
2. RIGHT OUTER JOIN:右外连接
SELECT e.last_name, d.name 
FROM s_emp e 
RIGHT OUTER JOIN s_dept d 
ON (e.dept_id = d.id);
等价于
SELECT e.last_name,d.name 
FROM s_emp e, s_dept d 
WHERE e.dept_id(+)=d.id;
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。

结论:字面意思,左连接连接左边,右连接连接右边。
      左连接关键词LEFT OUTER JOIN前面的多,即左边的记录多,
      右连接 关键词RIGHT OUTER JOIN后面的多,即右边的记录多。
3. FULL OUTER JOIN:全外关联
SELECT e.dept_id,d.id 
FROM s_emp e 
FULL OUTER JOIN s_dept d
ON (e.dept_id = d.id);

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

相关推荐

Global site tag (gtag.js) - Google Analytics