我有表A,三列
id text1 text2
我有表B,四列
id A_id key value
表B中的数据看起来像
id A_id key value
1 1 text1 test_value1
2 1 text2 test_value2
表A中的每一行都映射到表B中的2行。表A中的text1和text2列现在为空。我正在尝试将数据从表B复制到表A。
我该如何一步一步做到?谢谢。
现在我有以下声明,但必须指定
AND B.key = "text1"
,如何同时更新text1和text2列?
UPDATE A
INNER JOIN B
ON A.id = B.A_id
AND B.key = "text1"
SET A.text1 = B.value
最佳答案
加入B
两次,每个“键”一次。
UPDATE `A`
INNER JOIN `B` `B1`
ON `B1`.`A_id` = `A`.`id`
AND `B1`.`key` = 'text1'
INNER JOIN `B` `B2`
ON `B2`.`A_id` = `A`.`id`
AND `B2`.`key` = 'text2'
SET `A`.`text1` = `B1`.`value`,
`A`.`text2` = `B2`.`value`;
关于mysql - MySQL如何从另一个表更新表数据?表A中的1行映射到表B中的2行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51345871/