我有表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/

10-10 17:16