1. 程式人生 > >INNER JOIN和LEFT JION和RITHT JION怎樣理解?

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 只返回兩張表連線列的匹配項