1.两个不同的表进行查询,需要把结果合并,
比如table1的列为 id, user_id, type_id,pro_id;
table2的列为 id,user_id,collect_id;分别如下图所示
table1:
table2:
2.将两个表的查询结果合并到一起的查询语句为
select *, null as collect_id from table1 where user_id = 527
union
select id,user_id,null as type_id,null as pro_id, collect_id from table2 where user_id = 527
3.结果为:
总结:其实就是把对应的列补充到没有该列的表中,在例子中就是把collect_id补充到table1中,
把type_id,pro_id补充到table2中。
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
在SQLserver中 怎样将两个库中同样结构的两个表的数据进行合并
数据有可能存在重复
表结构完全相同
解析:
可以将两个表中的数据提出来(重复的过滤)写入一个临时表中,清空这两个表,再将临时表的数据回写入这两个表里面。为防出错,请先备份数据库再 *** 作。
如:
第一步:select * from 数据库名1..表名1 into #临时表名
第二步:insert into #临时表名 (字段名1,字段名2……) (select a.字段名1,a.字段名2…… from 数据库名2..表名2 a,数据库名1..表名1 b where 数据库名2..表名2.主键字段名<>数据名1..表名1.主键字段名 )
第三步:delete from 数据库名1..表名1
第四步:delete from 数据库名2..表名2
第五步:insert into 数据库名1..表名1 from #临时表
第六步:insert into 数据库名2..表名2 from #临时表
第七步:drop table #临时表
注:如果两个表中没有主键,你只有在第二条语句中where 项中一个字段一个字段地添加条件判断了。
一,先在SQL里创建两个数据库A和B。二,还原数据库,用A.BAK还原到数据库A,用B.BAK还原到数据库B。(这个你会吧?)
三,数据导出,(也可以导入)。可以从A导出到B,也可以从B导出到A。
如果从A导出到B。选择数据库A,点右键,选所有任务>数据导出。出现一个新的窗口。选择数据源也就是数据库A,再选择导出的目的地,也就是数据库B。之后再选择第一个选项,(复制视图和表),再选择所有的表不要选视图。(那些有眼镜的不要选。)然后一直下一步直到完成。
四,备份数据库B,备份的数据库文件就等于你要的C.BAK。
以上四步,第三步最为关键,有几种方法。也有很多选项,可要看清楚哟。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)