对于多表联合查询的一点理解
2015-06-30 23:28
423 查看
操作数据库时多表联合查询很常见。也知道常见联合查询的集中类型,内连接、外连接、全连接、自连接,外连接又分为左连接和右连接。
这些概念我一直都知道,但对于感念的理解并不透彻。对于不同类型的联合查询的结果数据集合没有清晰的区分。前两天,工作中又遇到的这样的问题,才开始弄明白。
内连接:传统写法:select a.*,b.* from a,b where a.column=b.column;
新式写法:select a.* from a inner join b on a.column=b.column;
需要注意的是,新式写法的sql执行效率要比传统写法的高,其中的原因我也不是很清楚。
内连接查询出的结果集是,当联合查询条件成立时返回的数据,如果联合查询条件不成立,则无结果数据返回。也就是说,有几条数据符合联合查询的条件,查询出的结果数据就会有几条。
外连接:左连接:传统写法:select a.*,b.* from a,b where a.column=b.column(+);这是以a表为主表进行的查询
新式写法:select a.* from b left [outer ] join b on a.column=b.column;
这些概念我一直都知道,但对于感念的理解并不透彻。对于不同类型的联合查询的结果数据集合没有清晰的区分。前两天,工作中又遇到的这样的问题,才开始弄明白。
内连接:传统写法:select a.*,b.* from a,b where a.column=b.column;
新式写法:select a.* from a inner join b on a.column=b.column;
需要注意的是,新式写法的sql执行效率要比传统写法的高,其中的原因我也不是很清楚。
内连接查询出的结果集是,当联合查询条件成立时返回的数据,如果联合查询条件不成立,则无结果数据返回。也就是说,有几条数据符合联合查询的条件,查询出的结果数据就会有几条。
外连接:左连接:传统写法:select a.*,b.* from a,b where a.column=b.column(+);这是以a表为主表进行的查询
新式写法:select a.* from b left [outer ] join b on a.column=b.column;
相关文章推荐
- c++中输出十进制,十六进制,八进制。默认输出十进制的数据和左右对齐
- iOS Portrait Landscape retina 4
- 14.04麒麟为/检查磁盘时发生严重错误的解决方法
- android sqlite的orm框架
- 和View Controllers一起工作
- mondb入手
- 二分算法
- 云计算名词解析
- Storm
- jaxp解析XML之DOM解析
- 关于签名
- 云计算的由来——开发过程和交付方式
- uva806 Spatial Structures 空间结构 (黑白图像的四分树表示)
- 百万级PHP网站架构工具箱
- Win7 ie的cookie存放路径
- ENode框架Conference案例分析系列之 - ENode框架初始化
- 《JavaScript高级程序设计》——笔记(2)
- 【HM】第5课:JDBC连接MySQL数据库
- 云计算的由来——技术积累
- 打开程序当前路径下某个文件