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

jndscz 2011-06-16 02:53:01
一个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个表是通过查询得到的

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

...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jndscz 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fredrickhu 的回复:]

最好写成存储过程来调用..
[/Quote]
因为表内容太多,本身之前4个表就是通过查询得到的,只有这样子才能避免统计时间这个字段导致数据量剧增。
--小F-- 2011-06-16
  • 打赏
  • 举报
回复
最好写成存储过程来调用..
haitao 2011-06-16
  • 打赏
  • 举报
回复
记录多,要给4个表的id字段都做索引
jndscz 2011-06-16
  • 打赏
  • 举报
回复
另外 inner join 用不了,我这四个表数据量太庞大了(帖子里面的只是示例),一用就无响应

最好是能够有直接合并4个datatable成一个新的datatable的方法,生成在同一个dataset中
GoAwayZ 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 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 是不是只按照左边的行数的,比如
表……
[/Quote]
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
jndscz 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 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
[/Quote]
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
GoAwayZ 2011-06-16
  • 打赏
  • 举报
回复
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

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧