博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表关联查询
阅读量:6605 次
发布时间:2019-06-24

本文共 1834 字,大约阅读时间需要 6 分钟。

hot3.png

一、内连接和外连接

   内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录,语法如下: 
 

Oracle代码  

1.   select table1.column,table2.column from table1 [inner|left|right|full]join table2 on table1.column=table2.column;  

inner join表示内连接、left join表示左外连接、right join表示右外连接、full join表示全连接;on用于指定连接条件。
注意:如果使用form内、外连接,则必须使用on操作符指定连接条件;如果使用(+)操作符连接,则必须使用where指定连接条件。
1、内连接
   内连接查询返回满足条件的所有记录,默认情况下没有指定任何连接则为内连接,例如:

Oracle代码  

1.   select t1.name,t2.name from cip_temps t1 inner join cip_tmp t2 on t1.ID=t2.id;  

2、左外连接
左外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行,例如:

Oracle代码  

1.   select t1.name,t2.name from cip_temps t1 left join cip_tmp t2 on t1.ID=t2.id;  

3、右外连接
右外连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的连接操作符右边表的其他行,例如:

Oracle代码  

1.   select t1.name,t2.name from cip_temps t1 right join cip_tmp t2 on t1.ID=t2.id;  

4、全连接
全连接查询不仅返回满足调价的所有记录,而且还会返回不满足连接条件的其他行,例如:

Oracle代码  

1.   select t1.name,t2.name from cip_temps t1 full join cip_tmp t2 on t1.ID=t2.id;  

5、(+)操作符
在oracle9i之前,当执行外连接时,都是使用连接操作符(+)来完成的,尽管可以使用操作符(+)执行外连接操作,但是oracle9i开始oracle建议使用outer join执行外连接,使用(+)操作符执行外连接的语法如下:

Oracle代码  

1.   select table1.column,table2.column from table1,table2 where table1.column(+)=table2.column;  

注意:

·         当使用(+)操作符执行外连接时,应当将该操作符放在显示较少行(完全满足连接条件行)一端。

·         (+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。

·         当使用(+)操作符执行外连接时,如果在where语句中包含多个条件,则必须在所有的条件中都包含(+)操作符。

·         (+)操作符只能适用于列,而不能适用于表达式。

·         (+)操作符不能与or和in操作符一起使用。

·         (+)操作符只能用于左外连接和右外连接,不能用于实现完全连接。

(1)、使用(+)操作符执行左外连接
当使用左外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的左边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到右边表的一端,示例如下:

Oracle代码  

1.   select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID=t2.id(+);  

(2)、使用(+)操作符执行右外连接
当使用右外连接时,不仅会返回满足连接条件的所有行,而且还会返回不满足连接条件的右边边的其他行。因为(+)操作符要放到行数较少的一端,所以在where子句中应当将该操作符放到左边表的一端,示例如下:

Oracle代码  

select t1.name,t2.name from cip_temps t1,cip_tmp t2 where t1.ID(+)=t2.id;

转载于:https://my.oschina.net/u/1044955/blog/277036

你可能感兴趣的文章
wait_event()函数集合详解
查看>>
sublime正则全局替换字符串
查看>>
golang emoji表情处理
查看>>
arduino
查看>>
OSPF高级配置与相关概念
查看>>
vCenter 6.0安装部署
查看>>
first的使用
查看>>
2015.10.23 信息系统项目管理师作业
查看>>
concurrentHashmap实现原理
查看>>
Asp.Net MVC4入门指南(9):查询详细信息和删除记录
查看>>
如何通过预加载器提升网页加载速度
查看>>
相对传统桌面设计器,在线报表设计器价值何在?
查看>>
Jquery基础整理
查看>>
命令:sudo
查看>>
数据库设计-范式
查看>>
oracle 授权
查看>>
EF 示例
查看>>
使用jquery分页插件时jquery.page.js遇到的坑
查看>>
读《[1]尹宝才,王文通,王立春.深度学习研究综述[J].北京工业大学学报,2015,41(01):48-59.》论文笔记...
查看>>
【Jmeter 双11电商性能测试总结】--未编写完善,目前只拟个思路记录下,后面时间充裕了再整理。...
查看>>