1

我有两张桌子。(在 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 语句。谢谢您的帮助。

4

1 回答 1

0

你的查询好像没问题,看这个demo:http

://www.sqlfiddle.com/#!2/f521f/2 可能是导入表的某些记录有空格,
看demo中的这条记录:

(9999999, ' Autoservisy', NULL)


- 查询未更新此记录。

于 2013-10-19T20:48:35.377 回答