mysql - 在 mysql 中使用 JOIN 语句更新多行

标签 mysql

我有两张 table 。 (在 MySQL 中)

表“categoryimport”包含本地语言的类别名称。

ID        Category      ID_category
1000001     Autoservisy   NULL
1000002     Autoservisy   NULL
1000002     Pneuservisy   NULL
1000003     Autoservisy   NULL
1000004     Autoservisy   NULL
1000005     Autoservisy   NULL

表“categorylang”还包含本地语言的相同类别名称及其 ID(ID_category 字段)。

ID_category      EN                       CZ
100              Garages              Autoservisy
101              Car bodywork             Autoklempíři
102              Motor-vehicle electrics  Autoelektrikáři
103              Car Dealers              Auto-moto prodejci 
110              Windscreen repair    Opravy autoskel
111              Tire service             Pneuservisy

我需要做的就是根据 categoryimport.Category = categorylang.CZ 将“categorylang”表中的 ID_category 插入到“categoryimport”表中相应的 ID_category 我试过:

UPDATE categoryimport JOIN categorylang 
ON categoryimport.Category = categorylang.CZ SET categoryimport.ID_category = categorylang.ID_category

结果是:

ID        Category      ID_category
1000001     Autoservisy   100
1000002     Autoservisy   **NULL**
1000002     Pneuservisy   111
1000003     Autoservisy   100
1000004     Autoservisy   100
1000005     Autoservisy   100

1000002 的字段 ID 类别未更新。还必须更新为 100 值。只有一个值 1000002 被更新。

我需要以下结果:

ID        Category      ID_category
1000001     Autoservisy   100
1000002     Autoservisy   **100**
1000002     Pneuservisy   111
1000003     Autoservisy   100
1000004     Autoservisy   100
1000005     Autoservisy   100

使用 CURSORS 可以解决问题,但我更喜欢一些简单的 SQL 语句。感谢您的帮助。

最佳答案

您的查询似乎工作正常,请参阅此演示:http://www.sqlfiddle.com/#!2/f521f/2

可能是导入表的某些记录有空格,
看看演示中的这条记录:

(9999999, ' Autoservisy', NULL)


- 此记录尚未被查询更新。

关于mysql - 在 mysql 中使用 JOIN 语句更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19468631/

相关文章:

具有相同连接的MySQL多个准备好的语句

mysql - 将报表的结果查询作为参数传递给钻取报表

mysql - SQL查询忽略条件

php - MySQL 和 INSERT 忽略

MySQL创建 View 时如何动态选择从哪个表获取数据

php - 如何处理图像 blob 列 mySQL PHP

php - MYSQL 在 PHP 中返回空结果

Mysql:如何仅在列(已接受)= 1 时选择?

php - 如何使用 PHP 在数据库中保存正确的价格格式?

php - 更新mysql错误