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
没有这种写法,错误的语句.
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
没有这种写法,错误的语句.
别再请看一个语句:
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 的写法多谢了。
from ckd a left join td b on a.djhm = b.tdh
left join ykd c on a.djhm = c.ykdh
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 --交差連接