更新增加一个门店ID字段的值

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增加主键

posted @ 2019-02-21 21:15  Sakura_柏  阅读(330)  评论(0编辑  收藏  举报