我有两张桌子如下。
表A:

    ResultID(PK) | ImportDate | Comment1
    -------------------------------------
    101          | 25-09-2019 | One
    101          | 25-09-2019 | Two
    103          | 25-09-2019 | Three
    103          | 25-09-2019 | Four
    ----------------------------------------

表B:
    ResultID(PK) | ImportDate | Comment2
    -------------------------------------
    101          | 26-09-2019 | new one
    101          | 26-09-2019 | new two
    104          | 26-09-2019 | new three
    104          | 26-09-2019 | new four
    --------------------------------------

所以输出应该是
表A:
ResultID(PK) | ImportDate | Comment1
-------------------------------------
101          | 26-09-2019 | new one
101          | 26-09-2019 | new two
103          | 25-09-2019 | Three
103          | 25-09-2019 | four
104          | 26-09-2019 | new three
104          | 26-09-2019 | new four
--------------------------------------

问题:我想得到如上所述的结果表A如果ResultID在表A和表B之间匹配,我想从表B更新表A中该ResultID的所有列。如果表B中的ResultID不在表A中,请将其插入表A。并且不是表A的主键。和条目将是唯一的,就像特定ResultID的两个条目一样。

最佳答案

只需使用一个简单的“内部连接”,如下所示:

DELETE TableA
FROM TableA
INNER JOIN TableB ON TableA.ResultID = TableB.ResultID;

然后简单地使用insert语句。

关于php - 在MySQL中使用“SET”且没有主键但条目相同的两个表之间的多列更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58135630/

10-12 14:26