如何做更新查询中的3表JOIN?
我问了一个问题,得到了这个答复,帮助。
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
现在我正在寻找这样做,如果有3桌涉及这样的事情。
UPDATE tableC c JOIN tableB b JOIN tableA a
我的问题是基本上…这是可能做一个UPDATE
语句3表连接? 和它是什么正确的语法? 谢谢。 我要做…
JOIN tableB, tableA JOIN tableB JOIN tableA
答案是yes
你可以
试试这样
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
编辑:
对于一般更新join:
UPDATE TABLEA a JOIN TABLEB b ON a.join_colA = b.join_colB SET a.columnToUpdate = [something]
实现相同结果的另一种方法是根本不使用JOIN
关键字。
UPDATE TABLE_A, TABLE_B SET TABLE_A.column_c = TABLE_B.column_c + 1 WHERE TABLE_A.join_col = TABLE_B.join_col
下面是包含JOIN
和WHERE
的Update查询。 同样的方法,我们可以使用多个join/ where子句,希望它会帮助你: –
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')
一个替代的一般计划,我只是作为一个独立的答案添加,因为抨击“回答评论”将不会采取新行,没有发布整个编辑,即使它尚未完成。
UPDATE table A JOIN table B ON {join fields} JOIN table C ON {join fields} JOIN {as many tables as you need} SET A.column = {expression}
例:
UPDATE person P JOIN address A ON P.home_address_id = A.id JOIN city C ON A.city_id = C.id SET P.home_zip = C.zipcode;