How can I do three table JOINs in an UPDATE query? How can I do three table JOINs in an UPDATE query? mysql mysql

How can I do three table JOINs in an UPDATE query?


The answer is yes, you can.

Try it like this:

UPDATE TABLE_A a    JOIN TABLE_B b ON a.join_col = b.join_col AND a.column_a = b.column_b    JOIN TABLE_C c ON [condition]SET a.column_c = a.column_c + 1

For a general update join:

UPDATE TABLEA aJOIN TABLEB b ON a.join_colA = b.join_colBSET a.columnToUpdate = [something]


An alternative way of achieving the same result is not to use the JOIN keyword at all.

UPDATE TABLE_A, TABLE_BSET TABLE_A.column_c = TABLE_B.column_c + 1WHERE TABLE_A.join_col = TABLE_B.join_col


Below is the update query which includes both JOIN and WHERE. In the same way, we can use multiple join/where clauses:

UPDATE opportunities_cstm oc JOIN opportunities o ON oc.id_c = o.id SET oc.forecast_stage_c = 'APX' WHERE o.deleted = 0   AND o.sales_stage IN('ABC','PQR','XYZ')