2

私は一種の翻訳データベースを持っています。言語 A (langA) の単語とその ID を含む 1 つのテーブル、言語 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

最後の 2 行は、1 つの単語に複数の翻訳がある可能性があるためです。

ここで、特定の翻訳の情報をその 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、translation WHERE translation.id = ...」の近く」というエラーが表示されます。

私は何を間違っていますか?

4

1 に答える 1

1

あなたが示したのは ですTSQLMySQLon multi-table updateの構文は次のとおりです。

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 に答える