2017-08-28 2 views
1

Ich habe 2 Tabellen: Pur_Entry and Pur_orderAktualisieren mehrere Tabelle mit INNER JOIN

Pur_entry => id, name, id_pur_order, is_deleted 
Pur_order => id, date, is_deleted 

ich aktualisieren müssen 'is_delete' in beiden Tabellen auf einer Aktion.

Gibt es eine interne Join-Methode für diese?

+0

Nein, können Update nur Spalten in einer Tabelle zu einem Zeitpunkt aktualisieren, aber Sie können auf zwei Updates senden die Datenbank in einem Batch in einer Transaktion. –

+0

@CharlesBretana Dies gilt nicht für MySQL. MySQL unterstützt das Aktualisieren mehrerer Tabellen in einer einzigen Anweisung. – Siyual

+0

@CharlesBretana also im Grunde muss ich gespeicherte Prozedur richtig verwenden? –

Antwort

0
UPDATE pur_order a, pur_entry b SET a.is_deleted = 1, b.is_deleted = 1 
WHERE b.id_pur_order = b.id AND a.id = 1; 
-1

Dieses Thema wurde bereits vor gefragt.
Werfen Sie einen Blick hier: MySQL, update multiple tables with one query

In Ihrem Fall sollte diese Arbeit:

UPDATE Pur_order, Pur_entry 
    SET Pur_order.is_deleted = 1 
     ,Pur_entry.is_deleted = 1 
WHERE Pur_entry.id_pur_order = Pur_order.id 
    AND Pur_order.id = @YourDesiredUpdateId 
; 
+0

aber das wird alle Felder aktualisieren, ich habe Bedingung auf pur_entry-> id –

+0

@mauliksompura natürlich müssen Sie die Zeile angeben, die Sie aktualisieren möchten. Ich habe gerade meine Antwort aktualisiert. Die Variable YourDesiredUpdateId sollte die ID enthalten, die Sie aktualisieren möchten. oder wie geben Sie die Zeilen an, die Sie aktualisieren möchten? –

+0

UPDATE Pur_order, Pur_entry SET Pur_order.is_deleted = 1 , Pur_entry.is_deleted = 1 WHERE Pur_entry.id_pur_order = Pur_order.id UND Pur_entry.id = @id –