追梦人.Net学习日记

  ASP.NET学习,需要我们去实践中模索,记录一些平时学习中的点点滴滴.....

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

 1 
 2 /*内联接   仅显示两个联接表中的匹配行的联接。(这是查询设计器中的默认联接类型。)例如,可以联接 titles 表和 publishers 表以创建显示每个书名的出版商名称的结果集。在内联接中,结果集内不包含没有出版商信息的书名,也不包含没有书名的出版商。这类联接所得到的 SQL 可能象下面这样:
 3 */
 4  
 5 SELECT     title, pub_name
 6 FROM         titles INNER JOIN
 7 publishers ON titles.pub_id = publishers.pub_id
 8 
 9 /*注意   当创建内联接时,包含 NULL 的列不与任何值匹配,因此不包括在结果集内。空值不与其它的空值匹配。 
10 
11 有关创建内联接的更多信息,请参见自动联接表。
12 
13 外联接   甚至包括在联接表中没有相关行的行的联接。可以创建外联接的三个变化形式来指定所包括的不匹配行: 
14 左向外联接   包括第一个命名表("左"表,出现在 JOIN 子句的最左边)中的所有行。不包括右表中的不匹配行。例如,下面的 SQL 语句说明 titles 表和 publishers 表之间的左向外联接包括所有的书名,甚至包括那些没有出版商信息的书名:
15 */ 
16 SELECT titles.title_id, 
17        titles.title, 
18        publishers.pub_name
19 FROM titles LEFT OUTER JOIN publishers 
20             ON titles.pub_id 
21              = publishers.pub_id
22 
23 /*右向外联接   包括第二个命名表("右"表,出现在 JOIN 子句的最右边)中的所有行。不包括左表中的不匹配行。例如,在 titles 和 publishers 表之间的右向外联接将包括所有的出版商,甚至包括那些在 titles 表中没有书名的出版商。所得到的 SQL 可能象下面这样: */
24 SELECT titles.title_id, 
25        titles.title, 
26        publishers.pub_name
27 FROM titles RIGHT OUTER JOIN publishers 
28             ON titles.pub_id 
29              = publishers.pub_id
30 /*完整外部联接   包括所有联接表中的所有行,不论它们是否匹配。例如,titles 表和 publishers 表之间的完整外部联接显示所有书名和所有出版商,甚至包括那些在另一个表中没有匹配值的书名和出版商。*/
31  
32 SELECT titles.title_id, 
33        titles.title, 
34        publishers.pub_name
35 FROM titles FULL OUTER JOIN publishers 
36             ON titles.pub_id 
37              = publishers.pub_id
38 /*有关创建外联接的更多信息,请参见创建外联接。
39 
40 交叉联接   在这类联接的结果集内,两个表中每两个可能成对的行占一行。例如,在通过作者 CROSS JOIN 出版商输出的结果集内,每个可能的作者/出版商组合占一行。所得到的 SQL 可能象下面这样: */
41 SELECT *
42 FROM authors CROSS JOIN publishers 
43 
posted on 2006-04-11 23:09  ZmStudio.CN  阅读(201)  评论(0)    收藏  举报