2016-05-02 16 views
1

In einem meiner Laravel-Projekt muss ich zwei Tabelle Daten innerhalb eines gleichen Bereichs einer Funktion aktualisieren. Auf den ersten Abfrage, ich versuche, Daten aus einer Tabelle mit folgenden Abfrage zu aktualisieren -Laravel - mehrere Abfragen kombinieren, um die Daten zweier Tabellen mit einer einzigen Abfrage zu aktualisieren

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

In zweiten und dritten Abfrage Ich füge und zwei Spalte einer anderen Tabelle Subtrahieren -

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

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

Alles funktioniert fein. Aber jetzt möchte ich all diese Operationen innerhalb einer Abfrage ausführen.

Antwort

0

Soweit ich das verstehe, gibt es keine Möglichkeit, dies mit eine Abfrage zu tun.

Was Sie sind grundsätzlich mit der DB:table Fassade tun ist Tagrunnig eine MySQL-Update-Anweisung wie: UPDATE <table_name> SET <field_name>=<value> WHERE condition

Wie Sie eine UPDATE-Abfrage wird darauf genau sehen kann, ein Tisch, nicht mehr. Um mehrere Tabellen zu aktualisieren, müssen Sie mehrere UPDATE-Abfragen ausführen.

+0

Okay, ich dachte darüber nach. Ich sah ein Problem - http://stackoverflow.com/questions/8765490/mysql-update-two-tables-at-once und denken, gibt es eine Möglichkeit, das zu tun, ohne Abfrage-Generator zu verwenden. – user3384985

Verwandte Themen