sql两表合并
‘壹’ sql求两张表如何合并。
先用左连接将1表完全查出,再用右连接将2表完全查出,最后合并结果
SELECT t1.id AS `编号`,t1.`name` AS `名称`,t1.score AS `科目一分数`,CASE WHEN t2.score IS NULL THEN 0 ELSE t2.score END AS `科目二分数`
FROM t1 LEFT JOIN t2 ON t1.id= t2.id
UNION
SELECT t2.id AS `编号`,t2.`name` AS `名称`,CASE WHEN t1.score IS NULL THEN 0 ELSE t1.score END AS `科目一分数`,t2.score AS `科目二分数`
FROM t1 RIGHT JOIN t2 ON t1.id= t2.id;
‘贰’ sql合并两张表(表字段不一致)到一张新表中
建表背景:有2张表,表A,表B(表A数据较多,表B字段较全,2张表的name字段数据有关联)
目的:把表A表B中的指定字段导入到表C
第一步,先创建好表C
第二步,把表A的数据合并到表C
insert into 表C (id,name,department,datetime) select id,name,department,datetime from 表A
第三步,把表B的数据合并到表C
update 表C as c,表B as b set c.image_url=b.image_url,c.face_image_id=b.face_image_id where c.name=b.name
‘叁’ sql 两表合并
insert
into
表A
select
所有字段,除了自增字段
from
表B
这样就将B表的所有数据
追加到
表A后面了
不明白加Q问:20011011
‘肆’ 求助:SQL里怎样合并2个数据库或者表呢
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
数据库1: unca
数据库2: unca1
都互相有
accwd 主键为: A
dattdf 主键为: B
iufer 主键为: C
floien 主键为: D
dengdq 主键为: E
等5个表 每个表的属性字段类型都一样
数据库1 有5万多条数据
数据库2 有7万多条数据
现在想 把2个数据库的数据合并
如果出现主键字段相同数据 就自动将那个重复的数据其中1条 主键号加上 自己设定的 2 这个数字
就是说 如果
accwd 表 字段:A G D F
5 77 66 88
5 44 33 77
我想要它遇到这情况后 在其中1条数据 的主键 后面加上2
如下 第一条加了2
accwd 表 字段:A G D F
52 77 66 88
5 44 33 77
这个语法该怎写呢?大家帮下~ 不知道这样解释高手是否能明白~:)
解析:
一句话做到是不太可能了,我想到的是
先用exists,把一个库中与另一库内重复的纪录的主键改变
然后用select into...合并表
具体不知道你用什么数据库,只大致写一下:
1,update db1.accwd t1 set a = a+'2' where exist select * from db2.accwd t2 where t1.a = t2.a;
2, insert into db1.accwd select from select * from db2.accwd;
‘伍’ sql两个表数据合并到一个新表
SQL 数据库中的两个表的数据合并到一个新表中,首先需要create一个新的表,然后根据数据表结构insert两个表的数据到新表中即可完成两个表数据合并到一个新表。
‘陆’ SQL 合并两表
两个表连接查询然后用distinct去掉重复的即可。
给你点思路,先把两个表连接结果作为一张表,然后再从这个表中过滤掉重复的。
select
distinct
t3.编号,t3.名称
from
(
select
t1.编号,t1.名称
from
t1
join
t2
)
as
t3
‘柒’ 在SQLserver中 怎样将两个库中同样结构的两个表的数据进行合并
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
在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 sever将两个表合起来语法
select * from a,b 这会显示所有两个表的笛卡尔积。
一、外连接1.左连接 left join 或 left outer joinSQL语句:select * from student left join score on student.Num=score.Stu_id;2.右连接 right join 或 right outer joinSQL语句:select * from student right join score on student.Num=score.Stu_id;3.完全外连接 full join 或 full outer joinSQL语句:select * from student full join score on student.Num=score.Stu_id;通过上面这三种方法就可以把不同的表连接到一起,变成一张大表,之后的查询操作就简单一些了。而对于select * from student,score;则尽量不使用此语句,产生的结果过于繁琐。
‘玖’ SQL 两张表合并 (两张表的列都相同)
可以参考下面的方法:
1、第一种,用一张临时表,把所有数据都放在一张表里
INSERT INTO QunList SELECT * FROM QunList89,90,91,92;
再在QunList中查询
2、第二种,用 UNION ALL方式查询
SELECT * FROM QunList89
UNION ALL
SELECT * FROM QunList90;
(9)sql两表合并扩展阅读:
SQL参考语句
删除表
drop table tabname--这是将表连同表中信息一起删除但是日志文件中会有记录
删除信息
delete from table_name-这是将表中信息删除但是会保留这个表
增加列
Alter table table_name add column_name column_type [default 默认值]--在表中增加一列,[]内的内容为可选项
‘拾’ SQL如何合并多个查询结果
1.两个不同的表进行查询,需要把结果合并,
比如table1的列为 id, user_id, type_id,pro_id;
table2的列为 id,user_id,collect_id;分别如下图所示
table1:
总结:其实就是把对应的列补充到没有该列的表中,在例子中就是把collect_id补充到table1中,
把type_id,pro_id补充到table2中。