红知博客

知其然,亦知其所以然
posts - 32, comments - 35, trackbacks - 0, articles - 0

SQL Server的Inner Join及Outer Join (转)

Posted on 2007-09-20 16:52 红子 阅读(921) 评论(0)  编辑  收藏 所属分类: MS SQL
 SQL Server的Inner Join及Outer Join

一、NATURAL JOIN(自然连接)
    两张表通过NATURAL JOIN连接的时候,相当于有个隐含的WHERE子句,对两张表中同名的对应列相比较看是否相等。

二、CROSS JOIN(创建笛卡尔积)
    对两张表通过交叉联合产生第三张返回结果集的表。相当于普通的连接。

三、INNER JOIN(内连接)
   内连接就相当于普通的CROSS JOIN,只是格式不一样,INNER JOIN在后面有一个ON子句(相当于WHERE)的搜索条件,用于过滤返回的行。

四、OUTER JOIN (外连接)
   select * from ta outer join tb on (ta.c1=tb.c1)
    outer join告诉DBMS生成结果表,在此表中不仅带有相关(ta.c1=tb.c1)行对,而且还有来自两个源表中任一表的不匹配的行。

五、LEFT OUTER JOIN(左连接) RIGHT OUTER JOIN(右连接)
    select * from ta left outer join  tb on (ta.c1=tb.c1)
      select * from ta right outer join tb on (ta.c1=tb.c1)
      left outer join(left join) 告诉DBMS生成包括联合行和任何不匹配的行的结果表,但是不匹配的行系来自查询的FROM子句中LEFT OUTER JOIN关键词左边的表中。
    right outer join(right join)与left outer join(left join)刚好相反。

六、FULL OUTER JOIN(全连接)
   FULL OUTER JOIN 返回组合了LEFT OUTER JOIN 和RIGHT OUTER JOIN结果的表。

只有注册用户登录后才能发表评论。


网站导航:
 
我要啦免费统计