2016-05-02 7 views
1

私のLaravelプロジェクトの1つでは、関数の同じスコープ内で2つのテーブルのデータを更新する必要があります。最初のクエリでは、私は次のクエリを使用して、テーブルのデータを更新しようとしている - 第二と第三のクエリでLaravel - 単一のクエリを使用して2つのテーブルのデータを更新するために複数のクエリを組み合わせる

 DB::table('parameters') 
     ->where($where) 
     ->update($data); 

私は2つの列の別のテーブルのを加減算しています -

DB::table('categories') 
      ->where(['id' => $data['category_id']]) 
      ->increment('parameters'); 

DB::table('categories') 
      ->where(['id' => $previous_category_id]) 
      ->decrement('parameters'); 

すべてが働いています良い。しかし、今では、これらの操作をすべて1回のクエリ実行で実行したいと考えています。

答えて

0

私がこれを理解する限り、クエリでこれを行う方法はありません。あなたはUPDATEクエリが正確にテーブルではなく、それ以上に指摘されて見ることができるように UPDATE <table_name> SET <field_name>=<value> WHERE condition

:あなたは基本的にDB:tableファサードでやっている

は次のようにMySQLのUPDATE文をrunnigています。したがって、複数のテーブルを更新するには、複数のUPDATEクエリを実行する必要があります。

+0

さて、私はそれについて考えました。私は問題を見た - http://stackoverflow.com/questions/8765490/mysql-update-two-tables-at-once 質問ビルダーを使用せずに、それを行うには何らかの方法があります。 – user3384985

関連する問題