Comment faire 3 JOIN Table dans la requête UPDATE?

J’ai posé une question et j’ai eu cette réponse qui m’a aidé.

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 

Maintenant, je cherche à faire cela s’il y a 3 tables impliquant quelque chose comme ça.

  UPDATE tableC c JOIN tableB b JOIN tableA a 

ma question est fondamentalement … est-ce possible de faire 3 jointure de table sur une instruction UPDATE ? et quelle est la syntaxe correcte pour cela? Je vous remercie. Est-ce que je fais le …

  JOIN tableB, tableA JOIN tableB JOIN tableA 

la réponse est yes vous pouvez

essayez comme ça

 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 

MODIFIER:

Pour la mise à jour générale, rejoignez:

  UPDATE TABLEA a JOIN TABLEB b ON a.join_colA = b.join_colB SET a.columnToUpdate = [something] 

Une autre manière de parvenir au même résultat est de ne pas utiliser le mot-clé 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 

Vous trouverez ci-dessous la requête de mise à jour qui inclut JOIN & WHERE deux. De la même façon, nous pouvons utiliser plusieurs clauses join / where, espérons que cela vous aidera: –

 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') 

Un autre plan général, que j’ajoute uniquement en tant que réponse indépendante car le “commentaire sur une réponse” éclaté ne prendra pas de nouvelles lignes sans publier l’intégralité de l’édition, même si elle n’est pas encore terminée.

 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} 

Exemple:

 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; 

Pour l’exemple de PostgreSQL:

 UPDATE TableA AS a SET param_from_table_a=FALSE -- param FROM TableA FROM TableB AS b WHERE b.id=a.param_id AND a.amount <> 0;