我正在编写一个小应用程序(c#/ WPF / MySQL)。我想做的一件事是更新表格中的一些产品描述。
以下是我认为可能作为起点的查询的略微修改版本:
SELECT
`egx_machine`.`contact_id` AS `contact_id`,
`egx_machine`.`gtr2_product_family` AS `gtr2_product_family`,
`egx_machine`.`gtr2_product_family_factory` AS `gtr2_product_family_factory`,
`egx_machine`.`gtr2_product_family_model` AS `gtr2_product_family_model`,
`egx_machine`.`gtr2_product_family_size` AS `gtr2_product_family_size`,
`egx_machine_extra`.`contact_name` AS `contact_name`,
`gtxuk_r2_machine`.`machine_desc` AS `machine_desc`,
`gtxuk_r2_machine`.`product_family` AS `product_family`,
`gtxuk_r2_machine`.`factory` AS `factory`,
`gtxuk_r2_machine`.`model` AS `model`,
`gtxuk_r2_machine`.`size` AS `size`
FROM (((`egx_machine`
JOIN `egx_machine_extra`
ON ((`egx_machine`.`contact_id` = `egx_machine_extra`.`contact_id`)))
JOIN `gtxuk_machine`
ON ((`egx_machine_extra`.`contact_value` = `gtxuk_machine`.`machine_id`)))
JOIN `gtxuk_r2_machine`
ON ((CONVERT(`gtxuk_machine`.`machine_desc` USING utf8) = `gtxuk_r2_machine`.`machine_desc`)))
WHERE (`egx_machine_extra`.`contact_name` = 'mac_type')
但不知何故,我需要将其转换为更新查询,其中:
`egx_machine`.`gtr2_product_family` = `gtxuk_r2_machine`.`product_family`
and
`egx_machine`.`gtr2_product_family_factory = `gtxuk_r2_machine`.`factory`
我知道这有点长啰嗦 - 但我开始时头发很长,现在看起来像kojak。
答案 0 :(得分:0)
如果要更新产品表中的值,可以按
进行操作update
products p
join products_new_data pn on pn.product_name = p.product_name
set
p.product_name_new = pn.product_name_new ,
p.product_source = pn.product_source ;
为了做到反向你可以做
update
products_new_data pn
join products p on p.product_name = pn.product_name
set
pn.product_name_new = p.product_name_new,
pn.product_source = p.product_source ;
<强>更新强>
从评论中我想这就是你所看到的,但是如果没有架构和一些数据就很难编写查询,但我认为如果我没有被误解,你应该非常接近你所看到的问题
update egx_machine em
JOIN egx_machine_extra emx on emx.contact_id = em.contact_id
JOIN gtxuk_machine gm on emx.contact_value = gm.machine_id
JOIN gtxuk_r2_machine g2m on CONVERT(gm.machine_desc USING utf8) = g2m.machine_desc
set
em.gtr2_product_family = g2m.product_family ,
em.gtr2_product_family_factory = g2m.factory