質問: お世話になります。 ごく基本的なことで申し訳ありません。 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)); ```