想要将多张表表结构不完全一样(这里提问就简单点就用一样的)的表汇总成一张表,网上查了很多关于表连接的join ,union等使用,但是没有找到合适我的需求的,求大家帮忙看看。3张表分别是3个项目的人员测试得分,每个项目可以多次测试,如图表test1
,test2
,test3
。需要将3个项目测试表汇总成一张表,每个人员每项目测试值都需要单独一行列出来,如图test
,null单元格如果做不到也接受填充历史值。mysql建库和建表语句如下:
CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
CREATE TABLE `test` (
`name` varchar(10),
`value1` double,
`value2` double,
`value3` double
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `test1` (
`name` varchar(10) NOT NULL,
`value1` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `test2` (
`name` varchar(10) NOT NULL,
`value2` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `test3` (
`name` varchar(10) NOT NULL,
`value3` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `test`.`test1`(`name`,`value1`)VALUES('小明',76);
INSERT INTO `test`.`test1`(`name`,`value1`)VALUES('小李',60);
INSERT INTO `test`.`test1`(`name`,`value1`)VALUES('小李',88);
INSERT INTO `test`.`test2`(`name`,`value2`)VALUES('小明',55);
INSERT INTO `test`.`test2`(`name`,`value2`)VALUES('小李',95);
INSERT INTO `test`.`test2`(`name`,`value2`)VALUES('小明',69);
INSERT INTO `test`.`test2`(`name`,`value2`)VALUES('小明',85);
INSERT INTO `test`.`test2`(`name`,`value2`)VALUES('小李',93);
INSERT INTO `test`.`test2`(`name`,`value2`)VALUES('小李',88);
INSERT INTO `test`.`test3`(`name`,`value3`)VALUES('小李',91);
INSERT INTO `test`.`test3`(`name`,`value3`)VALUES('小明',98);