LEFT JOIN的作用

请高手详细说明LEFT  JOIN的作用,并给出数个简单的实用的例子。  
顺便推荐一下有什么好的学习SQL的书。  
 
无论如何,谢谢在前:)  
---------------------------------------------------------------  
 
mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\acdata.chm::/ac_8_qd_09_0zqr.htm  
 
在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  
---------------------------------------------------------------  
还有个最常用的是INNER JOIN  
---------------------------------------------------------------  
呵呵。很久没回答问题了,我也来说说:  
left  join  其实就是把你要join的表分为主表和附表  
主表的字段不论符不符合都会显示出来,而附表中  
符合的字段将显示记录,不符合的将以NULL显示
posted on 2005-03-13 00:46  轻松逍遥子  阅读(1968)  评论(0)    收藏  举报