gpt4 book ai didi

mysql - 使用表 B 中的所有新条目更新表 A,并通过 B 更新 A 中的现有条目

转载 作者:行者123 更新时间:2023-11-29 19:23:30 25 4
gpt4 key购买 nike

我有一个表 A,其中包含一些带有条目的列。第 1 列是唯一的营销事件名称。表 A 包含所有相关历史数据。我有另一个表 B,其中也包含相同的列和条目。表 B 中的某些条目也可能已存在于表 A 中(事件名称与表 A 相同),但可以(并非必须)在其他列中包含不同的条目。 B 是我的更新表,包含(一些)新数据。

现在我想做的是:我想将所有新条目(第 1 列中的营销事件名称尚未在表中的行)完全从表 B 添加到 A,并使用不同的值更新/替换现有条目(第 1 列中的营销事件名称已在 A 中的行)其他列中的条目。

这是一个例子:

例如,如果表 A 包含:

|col1                           ||col2   ||col3|
+-----+
|20161512_NL_Luxus_1_DE ||Andrea ||29 |
|20161217_LC_YoBirthdayNo_A_CH ||Oscar ||38 |
|20161512_NL_SDT_4_DE ||James ||44 |
|20170117_SV_YoBirthdayYes_A_DE ||Julia ||57 |

表 B 包含:

|col1                           ||col2   ||col3|
+------+
|20161512_NL_SDT_4_DE ||James ||44 |
|20170117_SV_YoBirthdayYes_A_DE ||George ||12 |
|20161230_LC_YoBirthdayNo_A_CH ||Hank ||97 |
|20170101_SV_YoBirthdayYes_A_DE ||Selma ||77 |

我想要一个将更新表 A 的查询,如下所示:

|col1                           ||col2   ||col3|
+-----+
|20161512_NL_Luxus_1_DE ||Andrea ||29 |
|20161217_LC_YoBirthdayNo_A_CH ||Oscar ||38 |
|20161512_NL_SDT_4_DE ||James ||44 |
|20170117_SV_YoBirthdayYes_A_DE ||George ||12 |
|20161230_LC_YoBirthdayNo_A_CH ||Hank ||97 |
|20170101_SV_YoBirthdayYes_A_DE ||Selma ||77 |

这就是我到目前为止所得到的:

INSERT INTO A SELECT * FROM B WHERE `col1` NOT IN (SELECT `col1` FROM `A`);

-> 但这只是解决方案的一部分......

不幸的是我不知道如何解决这个问题......:/

提前致谢!

最佳答案

如果col1主键,您可以尝试以下操作:

    INSERT INTO A 
SELECT * FROM B ON DUPLICATE KEY
UPDATE col2=VALUES(col2), col3=VALUES(col3);

关于mysql - 使用表 B 中的所有新条目更新表 A,并通过 B 更新 A 中的现有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com