如何用sql语句将三张表合并为一张表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用sql语句将三张表合并为一张表相关的知识,希望对你有一定的参考价值。

表1:
编号 姓名 工资
1 a 1000
3 c 500
5 e 700
表2:
编号 姓名 奖金
2 b 500
3 c 200
4 d 400
表3:
编号 姓名 加班费
2 b 300
5 e 400

如何将以上三张表合并为一张表,显示为编号、姓名、工资、奖金、加班费、合计总额。

参考技术A select
a.id,
a.data1,
a.notes1,
b.data2,
b.note2,
c.data3,
c.notes3
into
x
from
a,b,c
where
a.id
=
b.id
and
a.id
=
c.id
这样三张表的数据就都放在表x里了
注意是在表x不存在的情况下
存在的话这样
insert
into
x
select
a.id,
a.data1,
a.notes1,
b.data2,
b.note2,
c.data3,
c.notes3
from
a,b,c
where
a.id
=
b.id
and
a.id
=
c.id
参考技术B select 编号,姓名,工资,奖金,加班费,工资+奖金+加班费 as 合计 from
(select * from 表1 a FULL OUTER JOIN 表2 b on a.编号=b.编号) ab
FULL OUTER JOIN 表3 c on ab.编号=c.编号本回答被提问者采纳
参考技术C 对3张表进行全连接就行了嘛

如何用sql语句复制一张表

如何用sql语句复制一张表

1、复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。
不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。

2、只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表

3、复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表

4、复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

5、可以将表1结构复制到表2
SELECT * INTO 表2 FROM 表1 WHERE 1=2

6、可以将表1内容全部复制到表2
SELECT * INTO 表2 FROM 表1

7、show create table 旧表;
这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表


 

以上是关于如何用sql语句将三张表合并为一张表的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句查询两张表中的相同字段数据

mysql数据迁移

如何用sql语句复制一张表

怎样用Sql语句判断一张表中的两条数据相同

怎样用Sql语句判断一张表中的两条数据相同

sql语句从一张表查询一个字段值插入另一个表中