Oracle左右全连接总结
2009-08-25 12:32
411 查看
--建立测试数据 create table a(id number); create table b(id number); insert into a values(1); insert into a values(2); insert into a values(3); insert into b values(1); insert into b values(2); insert into b values(4); commit; --左: --主流数据库通用的方法 select * from a left join b on a.id=b.id; --Oracle特有的方法 select * from a, b where a.id=b.id(+); ID ID ---------- ---------- 1 1 2 2 3 --右: --主流数据库通用的方法 select * from a right join b on a.id=b.id; --Oracle特有的方法 select * from a, b where a.id(+)=b.id; ID ID ---------- ---------- 1 1 2 2 4 --内 --主流数据库通用的方法 select * from a join b on a.id=b.id; --where关联 select * from a, b where a.id=b.id; ID ID ---------- ---------- 1 1 2 2 --全外 --主流数据库通用的方法 select * from a full join b on a.id=b.id; --Oracle特有的方法 select * from a, b where a.id = b.id(+) union select * from a, b where a.id(+) = b.id; ID ID ---------- ---------- 1 1 2 2 3 4 --完全,也叫交叉连接或者笛卡尔积 --主流数据库通用的方法 select * from a,b; --或者 select * from a cross join b; ID ID ---------- ---------- 1 1 1 2 1 4 2 1 2 2 2 4 3 1 3 2 3 4 连接无非是这几个 --内连接和where相同 inner join --左向外连接,返回左边表所有符合条件的 left join --右向外连接,返回右边表所有符合条件的 right join --完整外部连接,左向外连接和右向外连接的合集 full join --交叉连接,也称笛卡儿积。返回左表中的每一行与右表中所有行的组合 cross join --补充: --左向外连接,返回左边表所有符合条件的, --注意这里没有第二个加号,会直接过滤掉数据,只显示符合条件的记录 select * from a, b where a.id = b.id(+) and b.id = 2; ID ID ---------- ---------- 2 2 --左向外连接,返回左边表所有符合条件的 --注意where上第二个加号,它的作用是修改右边表记录的显示,例如如果b.id(+) = 2,显示为2,否则显示null select * from a, b where a.id = b.id(+) and b.id(+) = 2; ID ID ---------- ---------- 2 2 3 1
相关文章推荐
- oracle左右连接 完全连接 有效连接 心得总结
- oracle左右连接 完全连接 有效连接 心得总结
- Oracle左右全连接总结
- Oracle左右全连接总结
- Oracle左右全连接总结
- Oracle左右全连接总结
- Oracle左右全连接总结
- Oracle左右全连接总结
- oracle左右连接总结
- linux下php安装及连接oracle遇到问题总结
- Oracle内连接、左外连接、右外连接、全外连接小总结
- Oracle中三种表连接算法的总结
- Oracle表连接总结
- PL/SQL连接Linux服务器Oracle遇到的问题总结
- oracle中的左右连接
- Oracle内连接、外连接、右外连接、全外连接小总结
- 左右内外全交叉连接查询总结
- ORACLE 表连接总结
- C#连接Oracle的方法实例总结
- Oracle内连接、外连接、右外连接、全外连接小总结