我有两张 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/