INNER JOIN和LEFT JION和RITHT JION怎样理解?

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 只返回两张表连接列的匹配项

你可能感兴趣的:(数据库管理,join,insert,table,null)