sql语句中join的用法和效率说明.pdf
共享知识分享快乐
数据库join语句使用及效率说明
在我们开发数据库的时候,一定要时刻考虑效率的要求
个人建议当多表关联的时候,尽量少用innerjoin
2010
宋述臣
卑微如蝼蚁、坚强似大象
共享知识分享快乐
第1章目录
第1章Sql之leftjoin、rightjoin、innerjoin的区别3
第2章INNERJOIN和leftJOIN8
2.1现在比较:leftjoin和innerjoin13
第3章提升leftjoin效率14
第4章SQLServer中Innerjoin和where的效率差异15
卑微如蝼蚁、坚强似大象
共享知识分享快乐
第1章Sql之leftjoin、rightjoin、innerjoin
的区别
leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录
rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录
innerjoin(等值连接)只返回两个表中联结字段相等的行
举例如下:
表A记录如下:
aIDaNum
1
2
3
4
5
表B记录如下:
bIDbName
12006032401
卑微如蝼蚁、坚强似大象
共享知识分享快乐
22006032402
32006032403
42006032404
82006032408
1.leftjoin
sql语句如下:
select*fromA
leftjoinB
onA.aID=B.bID
结果如下:
aIDaNumbIDbName
112006032401
222006032402
332006032403
卑微如蝼蚁、坚强似大象
共享知识分享快乐
442006032404
5NULLNULL
(所影响的行数为5行)
结果说明:
leftjoin是以A表的记录为基础的,A可以看成左表,B可以看成右表,leftjoin是以左表为
准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录
(例子中为:A.aID=B.bID).
B表记录不足的地方均为NULL.
2.rightjoin
sql语句如下:
select*fromA
rightjoinB
onA.aID=B.bID
结果如下:
卑微如蝼蚁、坚强似大象
共享知识分享快乐
aIDaNumbIDbName
112006032401