左连接和右连接有什么区别?

解决方案 »

  1.   

    左右的区别,你自己写一个简单的只有ID字段的两个表,然后LEFT ,RIGHT的JOIN一下,你不就看出来了么?
      

  2.   

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