Mysql 根据一个表数据更新另外一个表

// 方法一: UPDATE 更新表 SET 字段 = ( SELECT 参考数据 FROM 参考表 WHERE  参考表.id  = 更新表.id );
UPDATE table_2 m SET m.`COLUMN` = ( SELECT `COLUMN` FROM table_1 mp WHERE mp.id = m.id );
// 方法二: 
UPDATE table_1 t1, table_2 t2  SET t1.`COLUMN` = t2.`COLUMN` WHERE t1.id = t2.pid;

生成sql语句

SELECT
	CONCAT( "UPDATE u_goods_support SET product_type='", product_type, "' WHERE prod_id='", prod_id, "';" ) 
FROM
	u_goods_support


SELECT
	CONCAT( "UPDATE u_order_split SET distributor_name='", new_name, "', distributor_code='", new_code, "', match_status = 1 WHERE distributor_name='", old_name, "' AND order_type = 0 AND match_status = 2;" ) 
FROM
	temp_distributor_name;
UPDATE u_order_split AS os
LEFT JOIN ( SELECT product_type, prod_id FROM u_goods_support ) AS gs ON gs.prod_id = os.prod_id 
SET os.product_type = gs.product_type
UPDATE u_order_split AS os
LEFT JOIN (
	SELECT
	CASE
		WHEN tdn.type = 1 THEN
		0 
		WHEN tdn.type = 2 THEN
		1 
		WHEN tdn.type = 3 THEN
		3 
		END AS type,
		tdno.new_name,
		tdno.old_name 
	FROM
		tour_distributor_new_old AS tdno
		LEFT JOIN tour_distributor_new AS tdn ON tdn.`code` = tdno.new_code 
	) AS bb ON ( bb.new_name = os.distributor_name OR bb.old_name = os.distributor_name ) 
	SET os.order_type = bb.type 
WHERE
	os.order_source = 1

posted on   何苦->  阅读(5646)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-03-30 php 查看使用多少内存

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示