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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM