22294


お世話になります。

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

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

[code]

    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
    ↑構文エラーがありました。"("
    
[/code]

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

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


CC BY-SA 3.0
2016-02-20T00:40:22.170
22292
2016-02-20T02:32:08.427
2016-02-20T02:32:08.427
7837
9374
question
sql sqlite
SQLiteでINNER JOIN してUPDATEさせるには


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

英語版に同様の質問がありますので、そちらも参照してください。  
[How do I make an UPDATE while joining tables on
SQLite?](https://stackoverflow.com/questions/773441/how-do-i-make-an-update-
while-joining-tables-on-sqlite)

[code]

    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));
    
[/code]


CC BY-SA 3.0
2016-02-20T02:00:04.400
22294
2016-02-20T02:00:04.400
2017-05-23T12:38:55.307
-1
9566
22292
answer