select a.*,b.* from a left join b on a.k = b.k 
select a.*,b.* from a left outer join b on a.k =b.k
----------上面两种一样left join是left outer join的简写
select a.*,b.* from a left inner join b on a.k = b.k 
没有这种写法,错误的语句.

解决方案 »

  1.   

    多谢回复:
    别再请看一个语句:
    select a.*  
    from  ckd a left join td  b,ykd c 
    on  a.djhm = b.tdh , a.djhm = c.ykdh该语句有错,不知何故,我的sql意思是ckd 左联接td,ykd 两个table ,分别通过
    a.djhm = b.tdh , a.djhm = c.ykdh来读取数据,,,不知应如何写,,,请高手讲解一下关联多个table 的写法多谢了。
      

  2.   

    select a.*  
    from ckd a left join td  b on a.djhm = b.tdh
               left join ykd c on a.djhm = c.ykdh
      

  3.   

    LEFT OUTER JOIN 或 LEFT JOIN 是一样的。
      

  4.   

    --在分析器中运行看看他们的区别
    declare @tbl1 table(id1 char(10) ,name1 char(10))
    insert @tbl1 select 
    '1','a' union select 
    '2','b' union select
    '33','d' union select 
    '44','e'
    select '弟一','個表' union all
    select * from @tbl1
    declare @tbl2 table(id2 char(10),name2 char(10))
    insert @tbl2 select
    '1','a' union select 
    '2','b' union select
    '55','d' union select 
    '66','e'
    select '弟二','個表' union all
    select * from @tbl2
    select '内連接','記録数=','表1表2','関連の記録' union all
    select * from @tbl1 as a inner join @tbl2 as b  on a.id1 = b.id2 --内連接
    select '左連接','','関連記録外','表1記録全有' union all
    select * from @tbl1 as a left join @tbl2 as b  on a.id1 = b.id2 --左連接
    select  '右連接','','関連記録外','表2記録全有' union all
    select * from @tbl1 as a right join @tbl2 as b   on a.id1 = b.id2 --右連接
    select '全連接','',' 表1和表2','所有記録' union all
    select * from @tbl1 as a full join @tbl2  as b   on a.id1 = b.id2  --全連接
    select '交差連接','記録数=','表1記録数×','表2記録数' union all
    select * from @tbl1 as a cross join @tbl2  as b         --交差連接