dataset中不同的datatable如何合并成一张datatable

一个dataset中,生成了4张基础的datatable1、datatable2、datatable3、datatable4

表1
id name

表2
id sex

表3
id year

表4
id tel


现在要做个报表,最好能够将这4个表合并成一个表,当作数据源的时候就只需要用一个表了。

表5
id name sex year tel

id重复的就合并


前面4个表是通过查询得到的

请问应该使用什么方法,才能达到这个合并的效果。

作者: jndscz   发布时间: 2011-06-16

SQL code
select a.id,a.name,b.sex,c.year,d.tel from 表1 a
left join 表2 b on a.id=b.id
left join 表3 c on a.id=c.id
left join 表4 d on a.id=d.id

作者: zy112429   发布时间: 2011-06-16

引用 1 楼 zy112429 的回复:

SQL code
select a.id,a.name,b.sex,c.year,d.tel from 表1 a
left join 表2 b on a.id=b.id
left join 表3 c on a.id=c.id
left join 表4 d on a.id=d.id

left join 是不是只按照左边的行数的,比如
表1中id号码为 1 2 3
表2中id号码为 2 3 4
表3中id号码为 5 6
表4中id号码为 1 7

那么按照这个方法最终得出的能保证id包含
1
2
3
4
5
6
7

作者: jndscz   发布时间: 2011-06-16

引用 2 楼 jndscz 的回复:
引用 1 楼 zy112429 的回复:

SQL code
select a.id,a.name,b.sex,c.year,d.tel from 表1 a
left join 表2 b on a.id=b.id
left join 表3 c on a.id=c.id
left join 表4 d on a.id=d.id

left join 是不是只按照左边的行数的,比如
表……
SQL code
select isnull(isnull(isnull(a.id,b.id),c.id,d.id),a.name,b.sex,c.year,d.tel from 表1 a
full join 表2 b on a.id=b.id
full join 表3 c on a.id=c.id
full join 表4 d on a.id=d.id

作者: zy112429   发布时间: 2011-06-16

另外 inner join 用不了,我这四个表数据量太庞大了(帖子里面的只是示例),一用就无响应

最好是能够有直接合并4个datatable成一个新的datatable的方法,生成在同一个dataset中

作者: jndscz   发布时间: 2011-06-16

记录多,要给4个表的id字段都做索引

作者: sz_haitao   发布时间: 2011-06-16