sql语句中join的用法和效率说明

sql语句中join的用法和效率说明

ID:15444060

大小:160.50 KB

页数:17页

时间:2018-08-03

sql语句中join的用法和效率说明_第1页
sql语句中join的用法和效率说明_第2页
sql语句中join的用法和效率说明_第3页
sql语句中join的用法和效率说明_第4页
sql语句中join的用法和效率说明_第5页
资源描述:

《sql语句中join的用法和效率说明》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据库join语句使用及效率说明在我们开发数据库的时候,一定要时刻考虑效率的要求个人建议当多表关联的时候,尽量少用innerjoin2010宋述臣第1章目录第1章Sql之leftjoin、rightjoin、innerjoin的区别3第2章INNERJOIN和leftJOIN82.1现在比较:leftjoin和innerjoin9第3章提升leftjoin效率11第4章SQLServer中Innerjoin和where的效率差异11第1章Sql之leftjoin、rightjoin、innerjoin的

2、区别leftjoin(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录rightjoin(右联接)返回包括右表中的所有记录和左表中联结字段相等的记录innerjoin(等值连接)只返回两个表中联结字段相等的行举例如下:--------------------------------------------表A记录如下:aIDaNum1a200501112a200501123a200501134a200501145a20050115表B记录如下:bIDbName12006032401220060

3、32402320060324034200603240482006032408--------------------------------------------1.leftjoinsql语句如下:select*fromAleftjoinBonA.aID=B.bID结果如下:aIDaNumbIDbName1a20050111    120060324012a20050112    220060324023a20050113    320060324034a20050114    42006032404

4、5a20050115    NULLNULL(所影响的行数为5行)结果说明:leftjoin是以A表的记录为基础的,A可以看成左表,B可以看成右表,leftjoin是以左表为准的.换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为:A.aID=B.bID).B表记录不足的地方均为NULL.--------------------------------------------2.rightjoinsql语句如下:select*fromArightjoinBonA

5、.aID=B.bID结果如下:aIDaNumbIDbName1a20050111    120060324012a20050112    220060324023a20050113    320060324034a20050114    42006032404NULLNULL82006032408(所影响的行数为5行)结果说明:仔细观察一下,就会发现,和leftjoin的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.-------------------------------

6、-------------3.innerjoinsql语句如下:select*fromAinnerjoinBonA.aID=B.bID结果如下:aIDaNumbIDbName1a20050111    120060324012a20050112    220060324023a20050113    320060324034a20050114    42006032404结果说明:很明显,这里只显示出了A.aID=B.bID的记录.这说明innerjoin并不以谁为基础,它只显示符合条件的记录.----

7、----------------------------------------注:LEFTJOIN操作用于在任何的FROM子句中,组合来源表的记录。使用LEFTJOIN运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。语法:FROMtable1LEFTJOINtable2ONtable1.field1compoprtable2.field2说明:table1,table2参数用于指定要将记录组合的表的名称。field1

8、,field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。compopr参数指定关系比较运算符:"=","<",">","<=",">="或"<>"。如果在INNERJOIN操作中要联接包含Memo数据类型或OLEObject数据类型数据的字段,将会发生错误.@时间漩涡用上面提到的A、B表为例:select*fromAleftjoin(selectbID,bNamefromBwh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。