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的员工记录和没有任何员工的部门记录。

猜你喜欢

转载自756272165.iteye.com/blog/2118113
今日推荐