当前位置:  数据库>sqlserver

sql中Left Join、Right Join、Inner Join的区别

    来源: 互联网  发布时间:2014-08-29

    本文导语:  一,概念上的区别:   Left Join[左联结]  返回包括左表中的所有记录和右表中联结字段相等的记录 Right Join[右联结]   返回包括右表中的所有记录和右表中联结字段相等的记录 Inner Join[等值联结]   只返回两个表中字段相...

一,概念上的区别:
 

Left Join[左联结]
 返回包括左表中的所有记录和右表中联结字段相等的记录

Right Join[右联结]
  返回包括右表中的所有记录和右表中联结字段相等的记录

Inner Join[等值联结]
  只返回两个表中字段相等的行

二,举例说明:
表A记录如下:
 

AID   AName
1    李明
2     王磊
3     李鹏
4     胡军

表B记录如下:
 

BID   BName
1     明明
2     李会军
3     赵勇
8     李中山

执行SQL语句,演示代码:
Left Join
------
 

代码示例:
select * from A Left Join B On A.AID=B.BID
 

结果如下:
 

AID AName BID BName
1   李明    1  明明
2   王磊    2  李会军
3   李鹏    3  赵勇
4   胡军   null null
所影响的行数为4行

结果分析:
Left Join 是以A表为基础的,A可以看作是左表,B可以看作是右表,Left Join是以左表为准的.
也可以简单的理解为,左表(A)的记录将会全部显示出来,而右表(B)只会显示符合搜索条件的记录;(如:A.AID=B.BID)

Right Join
------
 

代码示例:
select * from A Right Join B On A.AID=B.BID

结果如下:
 

AID AName BID BName
1   李明    1  明明
2   王磊    2  李会军
3   李鹏    3  赵勇
null null   8  胡军
所影响的行数为4行

结果分析:
和Left Join的结果相反,Right Join 是以右表为基础的,左表不存在的用null来填充;

Inner Join
------
 

代码示例:
select * from A Inner Join B On A.AID=B.BID

结果如下:
 

AID AName BID BName
1   李明    1  明明
2   王磊    2  李会军
3   李鹏    3  赵勇
所影响的行数为3行
 

结果分析:
怎么,少了一条记录,对了,Inner Join 只是显示出了A表中和B表中符合条件的记录,而不以任何一张表为基准.

三,用法:
From TableName1 Left Join TableName2 On TableName1.Field1 compopr TableName2. Field2
Right Join,Inner Join的用法类似,大家自行琢磨下吧。


    
 
 

您可能感兴趣的文章:

  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: left_outer_join定义及介绍
  • 解析sql语句中left_join、inner_join中的on与where的区别
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: right_outer_join定义及介绍
  • SQL中的left join right join
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: inner_join定义及介绍
  • SQL自连接(self join)实例学习
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: cross_join定义及介绍
  • 在使用 sql server 中 left join 时遇到的一个问题
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: full_join定义及介绍
  • SQL语句的并集UNION 交集JOIN(内连接,外连接)等介绍
  • SQL的Join使用图解教程
  • SQL 外链接操作小结 inner join left join right join
  • 非常详细的SQL--JOIN之完全用法
  • SQL Join的一些总结(实例)
  • SQL中JOIN和UNION区别、用法及示例介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • java命名空间java.sql接口resultsetmetadata的类成员方法: getcolumntype定义及介绍
  • 微软网站下载的Ms SQL Server2000 JDBC Driver,必须用英文版的SQL server2000吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3