Posted on 2007-09-20 16:52
红子 阅读(932)
评论(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结果的表。