gpt4 book ai didi

MySQL:根据匹配值将数据从一个表更新或复制到另一个表

转载 作者:行者123 更新时间:2023-11-29 16:24:09 25 4
gpt4 key购买 nike

我被这个问题难住了。我有两个表:

经销商

类别         cat_match_id

钱包
鞋子

类别

id      cat_name

1       钱包
2       鞋子

我想要做的是搜索Distributor中每行的category列(数千行),将其与cat_name 并获取类别(112 行)中的关联 ID,然后获取该 ID 并将其放入 cat_match_id 中。我搜索了我能找到的每一篇文章,并尝试了每一种解决方案,甚至是解决方案的组合。

我已经尝试过:

UPDATE Distributor
INNER JOIN Categories
ON Distributor.category = Categories.cat_name
SET Distributor.category = Categories.id

并且(尝试使用左、右、内、外等连接)

UPDATE Distributor d
LEFT JOIN Categories c
ON d.category = c.cat_name
SET d.cat_match_id = c.id
WHERE d.category = c.cat_name

还使用 MySQL 中的示例:

UPDATE Distributor,Categories 
SET Distributor.cat_match_id = Categories.id
WHERE Distributor.category = Categories.cat_name

这些只是我尝试过的可能十几个或更多片段中的几个。是因为我试图匹配 2 个 varchar 并复制结果 int 吗?

最佳答案

您的初始查询几乎是正确的,除非您的数据存在一些问题,但您更新了错误的列。你应该这样做:

UPDATE Distributor d
INNER JOIN Categories c
ON d.category = c.cat_name
SET d.cat_match_id = c.id;

您当前的尝试是更新 Category.category 字段,该字段已填充,并且是您在连接条件中使用的字段。

请注意,我在更新查询中引入了别名,这使其更易于阅读且更简洁。

关于MySQL:根据匹配值将数据从一个表更新或复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54355036/

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