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,@b

解决方案 »

  1.   

    join ... on 是微软的独创的,标准SQL 不是这样写的
    inner join on 可用WHERE 语句代替
    左右联结可用 *= =* 代替
      

  2.   

    谢谢大家!三个表可以JOIN嘛??
    :)
      

  3.   

    left  join 第一张表的连接列在第二张表中没有对应的,第二张表中的值返回null
    right join 第二张表的连接列在第一张表中没有对应的,第一张表中的值返回null 
    full  join 返回两张表中的 left join+right join中不相同的记录
    inner join 只返回两张表连接列的匹配项
      

  4.   

    谢谢大家!三个表可以JOIN嘛??几个都可以。
      

  5.   

    谢谢大家!三个表可以JOIN嘛?
    可以。
    你想join 多少個表都沒問題,
    但是速度會變慢
    最好不要超過5個
      

  6.   

    理论上JOIN多少都可以,但是多了速度会慢