广交好友~~ 想要讨论的可以留下msn~~~ 希望群友网友经常能提出问题,一起解决,共同提高

SQL 问答5 left join

上一篇 / 下一篇  2009-12-10 23:49:02 / 个人分类:SQL


  在SQL联机手册上,查找索引     Left   Outer   Join   运算符,有示例  
   
  使用外联接  
 仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回   FROM   子句中提到的至少一个表或视图的所有行,只要这些行符合任何   WHERE   或   HAVING   搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。  
   
  Microsoft®   SQL   Server™   2000   对在   FROM   子句中指定的外联接使用以下   SQL-92   关键字:    
   
  LEFT   OUTER   JOIN   或   LEFT   JOIN  
   
   
  RIGHT   OUTER   JOIN   或   RIGHT   JOIN  
   
   
  FULL   OUTER   JOIN   或   FULL   JOIN    
  SQL   Server   支持   SQL-92   外联接语法,以及在   WHERE   子句中使用   *=   和   =*   运算符指定外联接的旧式语法。由于   SQL-92   语法不容易产生歧义,而旧式   Transact-SQL   外联接有时会产生歧义,因此建议使用   SQL-92   语法。  
   
  使用左向外联接  
  假设在   city   列上联接   authors   表和   publishers   表。结果只显示在出版商所在城市居住的作者(本例中为   Abraham   Bennet   和   Cheryl   Carson)。  
   
  若要在结果中包括所有的作者,而不管出版商是否住在同一个城市,请使用   SQL-92   左向外联接。下面是   Transact-SQL   左向外联接的查询和结果:  
   
  USE   pubs  
  SELECT   a.au_fname,   a.au_lname,   p.pub_name  
  FROM   authors   a   LEFT   OUTER   JOIN   publishers   p  
        ON   a.city   =   p.city  
  ORDER   BY   p.pub_name   ASC,   a.au_lname   ASC,   a.au_fname   ASC  
   
 Top

2 楼kanshangren(槛上人)回复于 2003-11-27 14:05:31 得分2

还有个最常用的是INNER JOINTop

3 楼bubuy(始不垂翅,终能奋翼)回复于 2003-11-27 14:07:00 得分50

呵呵。很久没回答问题了,我也来说说:  
  left   join   其实就是把你要join的表分为主表和附表  
  主表的字段不论符不符合都会显示出来,而附表中  
  符合的字段将显示记录,不符合的将以NULL显示  
 Top

4 楼bubuy(始不垂翅,终能奋翼)回复于 2003-11-27 14:16:04 得分 0

我再给你个列子:  
  有两表:a,b  
  其中a表中的字段为a_id,b中的字段为b_id,b_no;记录如下:  
  a:                 b:  
  a_id             b_id     b_no  
  ---         -----  
    2                     2         3  
    3                     3         5  
    5                     5         6  
  执行语句:select   a.a_id,b.b_no   from   a   left   join   b   on   (a.a_id=b.b_id   and   b.b_id>5)  
   
  效果如下:  
   
  a_id             b_no  
  --------    
      5                     6  
      2                     null  
      3                     null  

TAG:

 

评分:0

我来说两句

Open Toolbar