我数据库中有3个表,表1,表2,表3
表1结构
分公司
1
2
3
4
5
6 表2结构
分公司 违纪
2 2
3 10
5 7 表3结构 表扬
1 2
2 4
4 2
5 10
6 3 如何查询得到
分公司 违纪 表扬
1 2
2 2 4
3 10
4 2
5 7 10
6 3
表1结构
分公司
1
2
3
4
5
6 表2结构
分公司 违纪
2 2
3 10
5 7 表3结构 表扬
1 2
2 4
4 2
5 10
6 3 如何查询得到
分公司 违纪 表扬
1 2
2 2 4
3 10
4 2
5 7 10
6 3
left join T2 on T1.分公司=T2.分公司
left join T3 on T1.分公司=T3.分公司
,b.违纪
,c.表扬
from 表1 a
left join
表2 b
on a.分公司=b.分公司
left join
表3 c
on a.分公司=c.分公司
,违纪=isnull(b.违纪,'')
,表扬=isnull(c.表扬,'')
from 表1 a
left join
表2 b
on a.分公司=b.分公司
left join
表3 c
on a.分公司=c.分公司
create table T1
(
分公司 int
)insert T1 select 1
insert T1 select 2
insert T1 select 3
insert T1 select 4
insert T1 select 5
insert T1 select 6
create table T2
(
分公司 int,
违纪 int
)
insert T2 select 2, 2
insert T2 select 3, 10
insert T2 select 5, 7
create table T3
(
分公司 int,
表扬 int
)insert T3 select 1, 2
insert T3 select 2, 4
insert T3 select 4, 2
insert T3 select 5, 10
insert T3 select 6, 3 select T1.分公司,T2.违纪,T3.表扬
from T1
left join T2 on T1.分公司=T2.分公司
left join T3 on T1.分公司=T3.分公司
--result
分公司 违纪 表扬
----------- ----------- -----------
1 NULL 2
2 2 4
3 10 NULL
4 NULL 2
5 7 10
6 NULL 3(所影响的行数为 6 行)
from T1
left join T2 on T1.分公司=T2.分公司
left join T3 on T1.分公司=T3.分公司
select a.分公司,b.违纪,c.表扬
from (表1 a left join 表2 b on a.分公司=b.分公司)
left join 表3 c on a.分公司=c.分公司
insert @t1 select 1 union all select 2
union select 3 union all select 4
union select 5 union all select 6declare @t2 table(分公司 int,违纪 int)
insert @t2 select 2,2 union all select 3,10
union all select 5,7declare @t3 table(分公司 int,表扬 int)
insert @t3 select 1,2 union all select 2,4
union all select 4,2 union all select 5,10
union all select 6,3select a.分公司,'违纪'=isnull(b.违纪,''),'表扬'=isnull(c.表扬,'')
from @t1 a left join @t2 b on a.分公司=b.分公司
left join @t3 c on a.分公司=c.分公司
/*
所影响的行数为 3 行)
(所影响的行数为 5 行)分公司 违纪 表扬
----------- ----------- -----------
1 0 2
2 2 4
3 10 0
4 0 2
5 7 10
6 0 3(所影响的行数为 6 行)
*/
如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 <管理> ,进入页面后就可以输入密码,分别给分,结帖。
或参考:http://www.csdn.net/help/over.asp
如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 <管理> ,进入页面后就可以输入密码,分别给分,结帖。
或参考:http://www.csdn.net/help/over.asp
from T1
inner join T2 on T1.分公司=T2.分公司
inner join T3 on T1.分公司=T3.分公司