版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。[url]http://chenxing.blog.51cto.com/240526/44598[/url]
        进行查询时,可以联接多个表来执行相关的查询,通常,我们用一个公用列来联接表,经常是指定一列的主键和外键关系。
可以有两种方式来联接表。首先,可以在WHERE子句中指定联接条件。这是以前联接表的方式,但现在仍然支持。如果使用SQL很久了,可能会习惯
这种方法。也可以通过FROM子句指定联接条件。
下面列出了SQLSERVER支持的连接类型:
联接类型 描述
CROSS 返回联接类型左右两侧的表中的所有行的所用组合。即笛卡尔积。
INNER 返回联接类型左侧表和右侧表中有相同值的所有行。
LEFT OUTER 返回左侧表中的所有行,以及与左侧表相匹配的右侧表中的那些行。如果不存在匹配,就在该字段以null值替代。
RIGHT OUTER 返回右侧表中的所有行,以及与右侧表相匹配的左侧表中的那些行。如果不存在匹配,就在该字段以null值替代。
FULL OUTER 返回左右两侧表中的所有行。它们完全相同,就输出两遍,否则就根据需要填以null值。
Self 类似于INNEER JOIN ,只是左右两侧的表为同一个表。

1.内联接(Inner join):两表组合常用方法,经常采用主键和外键匹配的形式。
    实例: Select huowu.hwid,hwname,ddid,hwje from huowu join dingdan  on  huowu.hwid=dingdan.hwid
  左外联接(LEFT OUTER JOIN):左边的表不加限制。
  右外联接(RIGHT OUTER JOIN):右边的表不加限制。
2.外联接(Outer join):   全外联接(FULL OUTER JOIN):不受条件约束,显示两表中所有内容。       
  实例:Select huowu.hwid,hwname,ddid,hwje from huowu left outer join dingdan on huowu.hwid=dingdan.hwid
3.交叉联接(Cross join):典型的笛卡尔积,没有on。
  实例:Select huowu.hwid,hwname,ddid,hwje from huowu cross join dingdan。
4.自联接(Self join):表自身的连接。
  实例:Select c1.hwid,c2.hwid,c1.hwname from huowu as c1 join huowu as c2 on c1.hwid=c2.hwid