MYSQL因为不能查询一张表时同时更新一张表,同时又会有子查询大于等于一条的情况出现.
分两种情况:
1 直接JOIN 得到一张表. 然后导出做筛选
CREATE TABLE TEST SELECT * FROM `1月第三周控奶新客沟通清单_copy` AS a LEFT JOIN arm_changsha.sys_office AS b ON b.`name` = a.`门店`;
2 做一张临时表,插入需要的字段. 这样可以完成.但是比较麻烦.思考一下更优的方法
ALTER TABLE `1月第三周控奶新客沟通清单_copy` ADD `门店ID` VARCHAR (18) NOT NULL; #更改增加门店ID字段#创建临时表 CREATE TEMPORARY TABLE TEST SELECT * FROM `1月第三周控奶新客沟通清单_copy` AS a LEFT JOIN arm_changsha.sys_office AS b ON b.`name` = a.`门店`; #删除原来表的数据 DELETE FROM `1月第三周控奶新客沟通清单_copy`; #插入需要的字段与数据 INSERT INTO `1月第三周控奶新客沟通清单_copy` ( `门店`, `会员姓名`, `手机号码`, `控奶首购时间`, `控奶首购数量`, `T+7小票数`, `T+7控奶购买数量`, `T+7复购金额`, `近90日控奶购买数量`, `近90日充值金额`, `是否稳定`, `门店ID` ) SELECT A.`门店`, A.`会员姓名`, A.`手机号码`, A.`控奶首购时间`, A.`控奶首购数量`, A.`T+7小票数`, A.`T+7控奶购买数量`, A.`T+7复购金额`, A.`近90日控奶购买数量`, A.`近90日充值金额`, A.`是否稳定`, A.id AS 门店id FROM TEST AS A SELECT * FROM `1月第三周控奶新客沟通清单_copy`; -- -- UPDATE `1月第三周控奶新客沟通清单_copy` AS a -- SET a.门店ID = ( -- SELECT id FROM TEST LIMIT 1 ); -- -- SELECT * FROM `1月第三周控奶新客沟通清单_copy`
3增加主键
原文地址:https://www.cnblogs.com/sakura3/p/10415301.html
时间: 2024-10-10 17:32:50