我有一个翻译数据库。一个表包含语言A(langA)中的单词及其ID,一个表包含语言B(langB)中的单词及其ID,另一个表连接两种语言中的单词(翻译),如ID idA idB。
为了按翻译ID显示翻译,我使用一个联接表:
SELECT *
FROM langA, langB, translation
WHERE translation.id = 5
AND langA.id = translation.idA
AND langB.id = translation.idB
最后两行是因为一个单词可能有多个翻译。
现在我想通过它的I d来更新某个翻译的信息。似乎更新我刚刚选择的内容是最容易的。
我找到了这样的语法
UPDATE langA
SET langA.word = 'newword'
FROM langA, langB, translation
WHERE translation.id = 5
AND langA.id = translation.idA
AND langB.id = translation.idB
但是,这给了我一个错误“langA,langB,translation WHERE translation.id=…”
我做错什么了?
最佳答案
你展示的那个是给TSQL
的。下面是多表更新时MySQL
的语法。
UPDATE langA
INNER JOIN translation
ON langA.id = translation.idA
INNER JOIN langB
ON langB.id = translation.idB
SET langA.word = 'newword'
WHERE translation.id = 5
关于mysql - MySQL-更新所选数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18801829/