CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请教关于select 语句中的left join 与left outer join 或left inner join 联接方式的区别....

楼主jjjgh(程序小意思)2006-01-05 09:45:47 在 MS-SQL Server / 基础类 提问

sql   语句中,一直不了解左联接(left   join)与左外联接(left   outer   join),左内联接(left   inner   join   )   两种语句的区别   ,  
  如:  
  select   a.*,b.*   from   a   left   join   b   on   a.k   =   b.k    
  select   a.*,b.*   from   a   left   outer   join   b   on   a.k   =b.k  
  select   a.*,b.*   from   a   left   inner   join   b   on   a.k   =   b.k    
   
  三种结果如何区别呀,  
   
  请高手们讲解.......... 问题点数:20、回复次数:7Top

1 楼WangZWang(先来)回复于 2006-01-05 09:51:15 得分 10

select   a.*,b.*   from   a   left   join   b   on   a.k   =   b.k    
  select   a.*,b.*   from   a   left   outer   join   b   on   a.k   =b.k  
  ----------上面两种一样left   join是left   outer   join的简写  
  select   a.*,b.*   from   a   left   inner   join   b   on   a.k   =   b.k    
  没有这种写法,错误的语句.Top

2 楼jjjgh(程序小意思)回复于 2006-01-05 10:06:16 得分 0

多谢回复:  
  别再请看一个语句:  
  select   a.*      
  from     ckd   a   left   join   td     b,ykd   c    
  on     a.djhm   =   b.tdh   ,   a.djhm   =   c.ykdh  
   
  该语句有错,不知何故,我的sql意思是ckd   左联接td,ykd   两个table   ,分别通过  
  a.djhm   =   b.tdh   ,   a.djhm   =   c.ykdh来读取数据,,,  
   
  不知应如何写,,,  
   
  请高手讲解一下关联多个table   的写法。。。  
   
  多谢了。  
  Top

3 楼WangZWang(先来)回复于 2006-01-05 10:11:40 得分 0

select   a.*      
  from   ckd   a   left   join   td     b   on   a.djhm   =   b.tdh  
                        left   join   ykd   c   on   a.djhm   =   c.ykdh  
  Top

4 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-01-05 10:19:46 得分 0

LEFT   OUTER   JOIN   或   LEFT   JOIN   是一样的。Top

5 楼mislrb(上班看看早报,上上CSDN,下班看看电影)回复于 2006-01-05 10:42:17 得分 0

上面都對沒什麼說的Top

6 楼vovo2000(没人要的猫)回复于 2006-01-05 10:50:58 得分 10

--在分析器中运行看看他们的区别  
  declare   @tbl1   table(id1   char(10)   ,name1   char(10))  
  insert   @tbl1   select    
  '1','a'   union   select    
  '2','b'   union   select  
  '33','d'   union   select    
  '44','e'  
  select   '弟一','個表'   union   all  
  select   *   from   @tbl1  
  declare   @tbl2   table(id2   char(10),name2   char(10))  
  insert   @tbl2   select  
  '1','a'   union   select    
  '2','b'   union   select  
  '55','d'   union   select    
  '66','e'  
  select   '弟二','個表'   union   all  
  select   *   from   @tbl2  
  select   '内連接','記録数=','表1表2','関連の記録'   union   all  
  select   *   from   @tbl1   as   a   inner   join   @tbl2   as   b     on   a.id1   =   b.id2 --内連接  
  select   '左連接','','関連記録外','表1記録全有'   union   all  
  select   *   from   @tbl1   as   a   left   join   @tbl2   as   b     on   a.id1   =   b.id2 --左連接  
  select     '右連接','','関連記録外','表2記録全有'   union   all  
  select   *   from   @tbl1   as   a   right   join   @tbl2   as   b       on   a.id1   =   b.id2 --右連接  
  select   '全連接','','   表1和表2','所有記録'   union   all  
  select   *   from   @tbl1   as   a   full   join   @tbl2     as   b       on   a.id1   =   b.id2   --全連接  
  select   '交差連接','記録数=','表1記録数×','表2記録数'   union   all  
  select   *   from   @tbl1   as   a   cross   join   @tbl2     as   b               --交差連接Top

7 楼jjjgh(程序小意思)回复于 2006-01-09 16:31:55 得分 0

多谢各位,  
  结贴   。Top

相关问题

  • 求联接语句:
  • sql语句联接查询问题
  • 表联接问题,问一sql语句
  • 求一SQL自联接的语句,在线等......
  • 求sql语句,关于联接两个表
  • 请教一条关于外联接的SQL语句
  • 几个结构相同的表如何写Sql语句联接起来?
  • 急!高分求解Sql语句的两个整型变量相联接的语法
  • 能不能在一个SQL语句中实现三表或以年的内部联接询呢
  • 一个有点难度的联接不同服务器的SQL语句,高手帮看看,谢了

关键词

  • 语句
  • 联接
  • td
  • 記録
  • join
  • djhm
  • tbl
  • allselect
  • left
  • outer

得分解答快速导航

  • 帖主:jjjgh
  • WangZWang
  • vovo2000

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo