SQLiteでINNER JOIN してUPDATEさせるには

投稿者: Anonymous

お世話になります。

ごく基本的なことで申し訳ありません。

SQLiteにて、三つのテーブルのデータを一度に更新したいので、
INNER JOIN で結合してUPDATEしようとしましたが、悉くエラーが出ました。
何度も見直したのですが、『構文エラー』と言われてしまいました。

UPDATE person SET a.name='初日の出' FROM  ((person as a INNER JOIN bloodtype as b ON a.cid=b.cid) INNER JOIN student_data as c ON a.cid=c.cid) WHERE a.id=1
↑構文エラーがありました。"."

UPDATE ((person as a INNER JOIN bloodtype as b ON a.cid=b.cid) INNER JOIN student_data as c ON a.cid=c.cid) SET a.name='初日の出' WHERE a.id=1
↑構文エラーがありました。"("

上記の様な感じなのですが、おかしな点がありましたら、ご指摘ください。

よろしくお願いいたします。

解決

更新するテーブルに対してJOINはできないようです。

英語版に同様の質問がありますので、そちらも参照してください。
How do I make an UPDATE while joining tables on SQLite?

UPDATE person
   SET name = '初日の出'
 WHERE id = 1
   AND cid IN (
 SELECT b.cid
   FROM bloodtype b
  INNER JOIN student_data c
     ON (b.cid = c.cid));
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *