2

我有一个翻译数据库。一张表包含语言 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

最后两行是因为一个词可能有多个翻译。

现在我想通过它的 ID 更新某个翻译的信息。似乎更新我刚刚选择的内容最容易。

我找到了这样的语法

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,翻译WHERE translation.id = ...'”

我究竟做错了什么?

4

1 回答 1

1

你展示的那个是为了TSQLMySQL这是多表更新的语法。

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 
于 2013-09-14T12:40:32.283 回答