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