Oracle连接方式之等值连接和外部连接
来源:互联网 发布:linux的编程工具 编辑:程序博客网 时间:2024/05/07 15:42
ORACLE 8i,9i 表连接方法。
一般的相等连接:
select * from a, b where a.id = b.id;
这个就属于内连接。
对于外连接:
Oracle中可以使用“(+) ”来表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN
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的员工记录。
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
结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。
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的员工记录和没有任何员工的部门记录。
ORACLE8i是不直接支持完全外连接的语法,也就是说不能在左右两个表上同时加上(+),下面是在ORACLE8i可以参考的完全外连接语法
select t1.id,t2.id from table1 t1,table t2 where t1.id=t2.id(+)
union
select t1.id,t2.id from table1 t1,table t2 where t1.id(+)=t2.id
- Oracle连接方式之等值连接和外部连接
- Oracle表连接方式之等值连接、外部连接
- 等值连接和自然连接
- 等值连接和自然连接
- 自然连接和等值连接
- 自然连接和等值连接
- 自然连接和等值连接
- 等值连接
- 自然连接,等值连接
- 内连接和等值连接的区别
- 内连接和等值连接的区别
- 自然连接和等值连接的区别
- 数据库Oracle之多表查询:笛卡尔积、等值连接、不等值连接、外连接,自连接
- Oracle 的共享连接和专用连接方式之初探
- Oracle 的共享连接和专用连接方式之初探
- 【数据库关系模型之关系代数】θ连接,等值连接和自然连接之间的差异
- oracle学习笔记:;连接查询(内连接的等值连接和非等值连接,外链接的左外、右外及全外链接)
- 等值连接与自然连接
- fock创建进程
- React Native 解决 Could not get BatchedBridge
- 阿里校招前端笔试题小结
- Linux0.11内核解读(一):schedule
- 禁止浏览器选中文本(就一句话,总是忘,记一下)
- Oracle连接方式之等值连接和外部连接
- Python学习笔记-17.09.10
- Java注释规范
- java初始化相关
- equals hashcode toString
- Jenkins持续集成环境部署
- 什么是网站系统的性能,可用性,可伸缩性,可扩展性
- 学习之<时间简史>
- DPDK(八):l2fwd代码分析