小结left join以及中间表查询(又补充了inner joi…
2018-06-17 23:59:32来源:未知 阅读 ()
直接上例子:
a表
b表
ab表
一、left join 过程(以 select * from a left join ab on a.a_id = ab.a_id):
用a中的记录根据on条件联合ab的记录进行筛选并做笛卡尔积,过称为
筛选过程:
1、a: 1,"lige" ab: 1,3
1,2
2、a: 2,"jk" ab:2,3
3、a:3,"df" ab:3,3
4、a:4,"kk" ab:NULL
笛卡尔积:
1、 1,"lige",1,3
1,"lige",1,2
2、 2,"jk",2,3
3、 3,"df",3,3
4、"kk",null,null
先读a表的 1,"lige"这条记录,然后根据条件在b表中筛选出1,3、1,2两条记录,做笛卡尔积,得到结果中的两条记录,然后依次进行下去
即为查询的结果
二、三张表连接查询的过程
就是在a和ab做了连接查询得到的结果上再与b做连接查询
select * from a left join ab on a.a_id=ab.a_id left join b on ab.b_id=b.b_id;
三、LEFT JOIN条件放ON和WHERE后的区别(图转自百度经验)
注意:条件放WHERE后时的先连接后筛选是指在根据on筛选、笛卡尔积连接(即一中的过程)之后的结果上再进行筛选!!!
四、inner join
inner join不会保证做连接查询的两个表中的任何一个表中的记录被查出来
以一中的表为例:
先进行left join
然后是inner join
可以看得出来,a和ab表进行左连接查询时,a表中的所有记录都被查询出来,如果ab表中没有符合连接查询条件的记录则显示为null
而inner join 时,a表中被查询出来的只是符合连接条件的记录
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 图解 SQL 里的各种 JOIN,看完不懂来找我! 2019-08-26
- MySQL数据库常用命令小结 2018-07-13
- 多表数据连接 Left join 2018-07-13
- SQL中join的用法 2018-07-13
- SQL JOIN 简单介绍 2018-07-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash