表一:shop_info:商家特征数据CREATE TABLE `shop_info` (
`shop_id` varchar(255) default NULL,
`city_name` varchar(255) default NULL,
`location_id` varchar(255) default NULL,
`per_pay` varchar(255) default NULL,
`score` varchar(255) default NULL,
`comment_cnt` varchar(255) default NULL,
`shop_level` varchar(255) default NULL,
`cate_1_name` varchar(255) default NULL,
`cate_2_name` varchar(255) default NULL,
`cate_3_name` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;表二:user_pay_count:商家每天客户流量数据CREATE TABLE `user_pay_count` (
`shop_id` varchar(255) default NULL,
`time_stamp` varchar(255) default NULL,
`count` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
现在两张表我想合成一张表--表三:商家特征数据和每天人流量数据CREATE TABLE `shop_info` (
`shop_id` varchar(255) default NULL,
`city_name` varchar(255) default NULL,
`location_id` varchar(255) default NULL,
`per_pay` varchar(255) default NULL,
`score` varchar(255) default NULL,
`comment_cnt` varchar(255) default NULL,
`shop_level` varchar(255) default NULL,
`cate_1_name` varchar(255) default NULL,
`cate_2_name` varchar(255) default NULL,
`cate_3_name` varchar(255) default NULL,
`2015-06-26` varchar(255) NULL ,
`2015-06-27` varchar(255) NULL ,
..........
`2016-10-31` varchar(255) NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;由于表二的具体数据时间范围是2015-06-26 06:00:00至2016-10-31 23:00:00但是有的商家的数据只是从 2016-07-01 开始,或者其他时间开始。现在我想把两张表整合到一起,用上面的创建表,合理吗?什么SQL语句可以把两张表按照上面的方式创建一张新表呢?
`shop_id` varchar(255) default NULL,
`city_name` varchar(255) default NULL,
`location_id` varchar(255) default NULL,
`per_pay` varchar(255) default NULL,
`score` varchar(255) default NULL,
`comment_cnt` varchar(255) default NULL,
`shop_level` varchar(255) default NULL,
`cate_1_name` varchar(255) default NULL,
`cate_2_name` varchar(255) default NULL,
`cate_3_name` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;表二:user_pay_count:商家每天客户流量数据CREATE TABLE `user_pay_count` (
`shop_id` varchar(255) default NULL,
`time_stamp` varchar(255) default NULL,
`count` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
现在两张表我想合成一张表--表三:商家特征数据和每天人流量数据CREATE TABLE `shop_info` (
`shop_id` varchar(255) default NULL,
`city_name` varchar(255) default NULL,
`location_id` varchar(255) default NULL,
`per_pay` varchar(255) default NULL,
`score` varchar(255) default NULL,
`comment_cnt` varchar(255) default NULL,
`shop_level` varchar(255) default NULL,
`cate_1_name` varchar(255) default NULL,
`cate_2_name` varchar(255) default NULL,
`cate_3_name` varchar(255) default NULL,
`2015-06-26` varchar(255) NULL ,
`2015-06-27` varchar(255) NULL ,
..........
`2016-10-31` varchar(255) NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;由于表二的具体数据时间范围是2015-06-26 06:00:00至2016-10-31 23:00:00但是有的商家的数据只是从 2016-07-01 开始,或者其他时间开始。现在我想把两张表整合到一起,用上面的创建表,合理吗?什么SQL语句可以把两张表按照上面的方式创建一张新表呢?
`shop_id` varchar(255) default NULL,
`city_name` varchar(255) default NULL,
`location_id` varchar(255) default NULL,
`per_pay` varchar(255) default NULL,
`score` varchar(255) default NULL,
`comment_cnt` varchar(255) default NULL,
`shop_level` varchar(255) default NULL,
`cate_1_name` varchar(255) default NULL,
`cate_2_name` varchar(255) default NULL,
`cate_3_name` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;表二:user_pay_count:商家每天客户流量数据 部分截图CREATE TABLE `user_pay_count` (
`shop_id` varchar(255) default NULL,
`time_stamp` varchar(255) default NULL,
`count` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;表三:商家特征数据和每天人流量数据CREATE TABLE `shop_info` (
`shop_id` varchar(255) default NULL,
`city_name` varchar(255) default NULL,
`location_id` varchar(255) default NULL,
`per_pay` varchar(255) default NULL,
`score` varchar(255) default NULL,
`comment_cnt` varchar(255) default NULL,
`shop_level` varchar(255) default NULL,
`cate_1_name` varchar(255) default NULL,
`cate_2_name` varchar(255) default NULL,
`cate_3_name` varchar(255) default NULL,
`2015-06-26` varchar(255) NULL ,
`2015-06-27` varchar(255) NULL ,
..........
`2016-10-31` varchar(255) NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
shop_info.shop_id,
user_pay_count.shop_id,
shop_info.city_name,
shop_info.location_id,
shop_info.per_pay,
shop_info.score,
shop_info.comment_cnt,
shop_info.shop_level,
shop_info.cate_1_name,
shop_info.cate_2_name,
shop_info.cate_3_name,
user_pay_count.time_stamp,
user_pay_count.count
FROM
shop_info ,
user_pay_count
WHERE shop_info.shop_id=user_pay_count.shop_id现在这个结果不是我想要的,我想要把时间这列 转换成列名
每行数据为1个商家,从2015-06-26 至2016-10-31每天的客户流量
一共2000个商家,2000行这样的表结构转变下了思路,保持表shop_info结构不变,然后把表shop_info表里的10列数据直接插入到表user_pay_count里,变成下图:
所以现在想把表user_pay_count里的时间列里的每天时间点 变成 列名
2、如果非要这样写,可以去看看动态sql。(真心没有那个必要整的这么复杂)