php - 在MySQL中使用“SET”且没有主键但条目相同的两个表之间的多列更新

标签 php mysql arrays

我有两张桌子如下。
表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/

相关文章:

php - 带有 php 变量的 MySQL 字符串连接

php - 如何在 MYSQL 查询中的另一个计算中立即使用计算结果

MySQL - 每3小时的数据平均值?

mysql - MySQL 中的 OUTPUT 子句

c - 函数只显示一列平均值..?

javascript - 如何在对象内声明不会注册到 0 索引的数组?

c - 何时将\0添加到数组中

php - PHP 中的 AWS Cloudfront SetCookie

PHP:序列化对象并将它们粘贴到数据库中以备后用是不是糟糕的设计?

php - 从 PHP 下载 excel 文件