- declare @a table(cA1 int,cA2 int)
- declare @b table(cB1 int,cB2 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.cA1=Bb.cB1
- --右:
- select * from @a Aa right join @b Bb on Aa.cA1=Bb.cB1
- --内
- select * from @a Aa join @b Bb on Aa.cA1=Bb.cB1
- --外:
- select * from @a Aa full join @b Bb on Aa.cA1=Bb.cB1
- --完全
- select * from @a,@b
==============
cross join 是笛卡儿乘积 就是一张表的行数乘以另一张表的行数
a left join b:返回a的全部行--》b中满足的行以及b中没有满足的行(用null代替)
a right join b:同上不过是ab调换一下
full join 返回两张表中的行 left join+right join
inner join 只返回两张表连接列的匹配项