我有两张桌子。 (在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
我需要做的就是将'categorylang'表中的ID_category插入到基于categoryimport.Category = categorylang.CZ的表'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语句。谢谢你的帮助。
答案 0 :(得分:0)
您的查询似乎工作正常,请参阅此演示:http://www.sqlfiddle.com/#!2/f521f/2
可能是导入表的某些记录中有空格,
在演示中查看此记录:
(9999999, ' Autoservisy', NULL)
- 查询未更新此记录。