我想将值从 table_a 复制/更新到 table_b 的另一行 WHERE table_a.id = table_b.id AND table_a.name = table_b.name
我有 2 个表price_drop_apps_temp
并且price_drop_apps
具有相同的结构
CREATE TABLE IF NOT EXISTS `price_drop_apps_temp` (
`application_id` int(11) NOT NULL DEFAULT '0',
`storefront_id` int(11) NOT NULL DEFAULT '0',
`price_1` decimal(9,3) DEFAULT NULL,
`price_2` decimal(9,3) DEFAULT NULL,
`price_3` decimal(9,3) DEFAULT NULL,
`price_4` decimal(9,3) DEFAULT NULL,
`price_5` decimal(9,3) DEFAULT NULL,
`price_6` decimal(9,3) DEFAULT NULL,
PRIMARY KEY (`application_id`,`storefront_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci")
该表price_drop_apps_temp
包含更新的application_id
和storefront_id
。
我需要将表中的price_drop_app
所有值从列复制price_2
到表price_drop_apps_temp
列price_1
,其中两个表中的application_id
ANDstorefront_id
都匹配,其他一些列以此类推。如果price_drop_apps_temp
没有匹配且值应保持为 NULL application_id
。storefront_id
我尝试了以下操作,但它不起作用,我也不确定是否应该使用UPDATE
or INNER JOIN
。我的 SQL 技能非常有限,因此不胜感激。
INSERT INTO price_drop_apps_temp (price_1,price_2,price_3) SELECT price_2,price_3,price_4 FROM price_drop_apps WHERE price_drop_apps_temp.application_id = price_drop_apps.application_id AND price_drop_apps_temp.storefront_id = price_drop_apps.storefront_id