8

innjer 結合を使用してリレーショナル更新を実行しようとしていますが、正しい構文を取得できないようです。

行は次のとおりです。

Catalogue.Category_ID
Catalogue.Visible

Categories.Category_ID
Categories.Category_Name

カテゴリ ID 番号が一致し、正しい名前に対応する場合、表示フィールドの値を更新しようとしています。

UPDATE `Catalogue` 
SET `Visible` = '0' 
FROM `Catalogue` 
INNER JOIN `Categories` 
  ON Catalogue.Category_ID = Categories.Category_ID 
  AND Categories.Category_Name = 'Bases'

ばかげた構文ミスが原因である場合はお詫び申し上げます。私はリレーショナル データベースの経験が豊富ではありません。

4

3 に答える 3

17

これは適切な構文だと思います:

UPDATE `Catalogue` 
INNER JOIN `Categories` 
  ON Catalogue.Category_ID = Categories.Category_ID 
  AND Categories.Category_Name = 'Bases'
SET `Visible` = '0' 
于 2013-07-26T20:15:39.167 に答える
3

TSQL構文を使用しています。MySQL

UPDATE `Catalogue` 
       INNER JOIN `Categories`
           ON Catalogue.Category_ID = Categories.Category_ID

SET `Visible` = '0' 
WHERE Categories.Category_Name = 'Bases'

クエリを短くしたい場合は、使用しますALIAS

UPDATE Catalogue a 
       INNER JOIN Categories b
           ON a.Category_ID = b.Category_ID

SET    Visible = '0' 
WHERE  b.Category_Name = 'Bases'
于 2013-07-26T20:16:07.000 に答える