Saya mengajukan pertanyaan dan mendapat balasan yang membantu.
UPDATE TABLE_A a JOIN TABLE_B b
ON a.join_col = b.join_col AND a.column_a = b.column_b
SET a.column_c = a.column_c + 1
Sekarang saya ingin melakukan ini jika ada 3 tabel yang terlibat seperti ini.
UPDATE tableC c JOIN tableB b JOIN tableA a
pertanyaan saya pada dasarnya ... apakah ini mungkin untuk melakukan 3 tabel bergabung pada UPDATE
pernyataan? dan apa sintaks yang benar untuk itu? Terima kasih. Apakah saya melakukan ...
JOIN tableB, tableA
JOIN tableB JOIN tableA
JOIN
danON
kondisinya, sama seperti yang Anda lakukan dalamSELECT
kueri.UPDATE t1 JOIN t2 ON t1.id = t2.t1_id JOIN t3 ON t3.id = t2.t3_id SET t1.col = 'newval'
Jawaban:
jawabannya adalah
yes
kamu bisacoba seperti itu
EDIT:
Untuk Pembaruan umum, gabung:
sumber
UPDATE table A JOIN table B ON {join data} JOIN table C ON {join data} JOIN {more join tables} SET A.column = {expression}
(maafkan saya jika editorWHERE
?? AtauWHERE
tidak mungkin?Cara alternatif untuk mencapai hasil yang sama adalah dengan tidak menggunakan
JOIN
kata kunci sama sekali.sumber
UPDATE TABLE_A, TABLE_B SET TABLE_A.column_c = TABLE_A.column_c +1 WHERE TABLE_A.join_col = TABLE_B.join_col
JOIN
dengan cara yang sama melakukanSELECT * FROM TABLE_A, TABLE_B ...
melakukanUPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition]
Kemudian, manual menyatakan: "table_references
Klausa daftar tabel yang terlibat dalam bergabung. Sintaksnya dijelaskan di Bagian 13.2.9.2, GABUNGKAN Sintaks ."Di bawah ini adalah permintaan Pembaruan yang mencakup
JOIN
&WHERE
keduanya. Cara yang sama kita dapat menggunakan multiple join / where clause, Semoga ini akan membantu Anda: -sumber
Alternatif General Plan, yang saya hanya tambahkan sebagai Jawaban independen karena "komentar pada jawaban" yang blasted tidak akan mengambil baris baru tanpa memposting seluruh pengeditan, meskipun belum selesai.
Contoh:
sumber
Untuk contoh PostgreSQL:
sumber