Join用法:declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@bleft  join 第一张表的连接列在第二张表中没有对应的,第二张表中的值返回null
right join 第二张表的连接列在第一张表中没有对应的,第一张表中的值返回null 
full  join 返回两张表中的 left join+right join中不相同的记录
inner join 只返回两张表连接列的匹配项

解决方案 »

  1.   

    两个表的连接,是通过将一个表中的一列或者多列同另一个表中的列链接而建立起来的。用来连接两张表的表达式组成了连接条件。当连接成功后,第二张表中的数据就同第一张表连接起来了,并形成了复合结果集--包括两张表中数据行的计划。简单地说,就是两张表有了子集,虽然只是暂时的
    -
    有两者基本类型的的连接,inner和outer连接。两种类型的主要区别在于,即使是在连接条件不满足的情况下,外部连接也会在结果集内返回行,而内部连接不会在结果集类返回行
    -
    当外部连接不满足连接条件时,通常返回一个表中的列,但是第二个表中没有返回值--为null
      

  2.   

    那left join,right join是指的内连接还是外连接啊?