他の2つのテーブルの情報からテーブル・フィールドを更新するSQL問合せ

私はカテゴリ、古い、新しいの3つのテーブルを持っています。

目標:book_idを古いものから新しいものに更新する

tablesカテゴリには列があります:book_id

oldとnewの両方のテーブルにはidとisbnという列があります

達成したいこと:

  • 元のbook_idをカテゴリ
  • から取得します。
  • 元のbook_idと元のIDを一致させる
  • 結果のレコードのisbnを取り出し、新しいレコードのisbnと一致させる
  • 得られたレコードのIDを取得し、book_idを更新する

MySQLの実行。

1

2 答え

MySQLの構文は、SQL ServerやOracleと少し異なります...

update category cat
inner join old on cat.book_id = old.id
inner join new on old.isbn = new.isbn
set cat.book_id = new.id
2
追加された
ありがとう!それは素晴らしく働いた。
追加された 著者 latca,

カテゴリを更新する場合は、これを行う必要があります:

update cat 
set book_id = new.id
from category cat
join old on cat.book_id = old.id
join new on old.isbn = new.isbn
0
追加された
エラーが表示されます:SQL構文のFROMの近くにエラーがあります
追加された 著者 latca,