• 締切済み

2つのテーブルのupdate

AtableというテーブルとBtableというテーブルのTypeフィールドをupdateする場合、テーブルが異なるごとにmysql_queryを使っているのですが、この場合、ひとつにまとめられないものでしょうか? このような使用方法が通常ですか? よろしくお願い致します。 $ASQL = "update Atable set Type = 1 where id = $a"; $BSQL = "update Btable set Type = 1 where id = $b"; mysql_query($ASQL); mysql_query($BSQL);

みんなの回答

回答No.2

MySQL特有の記入方法のようですので、あまりお勧めはできませんが、1個のUPDATEで複数のテーブルを更新することは可能です。 たとえば UPDATE ATABLE A,BTABLE B SET A.TYPE=1,B.TYPE=1 WHERE A.ID=B.ID AND (A.ID=2 OR B.ID=3) です。 ただし、2個のテーブルの結合結果に対する結合テーブルに対しUPDATEするので、思わぬ動きをするので注意下さい。 ID=2がATABLEとBTABLEの両方に存在すると、BTABLEの内容も変わってしまう。 ID=3がBTABLEにしかない場合は結合出来ないのでB.ID=3のテーブルの内容は更新されない。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

updateの場合はテーブルの列記やjoinすることで連携して更新は可能ですが ご提示の例だと、関連性がない2つの更新でしかなく、 ひとつのテーブルに対しても2つ発行するクエリーでは?

関連するQ&A