I want to join 2 tables and update value of firts table on specified value of 2nd table. I failed using others solutions.
UPDATE customers
SET cutoffstop = cutoffstop + '432000'
FROM customers as c
JOIN bluemedia as b ON c.id = b.customerid
WHERE b.orderid = '217201807'
General Update Syntax:
[ WITH [ RECURSIVE ] with_query [, ...] ]
UPDATE [ ONLY ] table [ [ AS ] alias ]
SET { column = { expression | DEFAULT } |
( column [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
[ FROM from_list ]
[ WHERE condition | WHERE CURRENT OF cursor_name ]
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
Solution for you problem:
UPDATE customers AS c
SET cutoffstop = cutoffstop + 432000
FROM bluemedia as b
WHERE c.id = b.customerid
AND b.orderid = '217201807'
For more information on UPDATE
syntax follow the below link:
https://www.postgresql.org/docs/current/static/sql-update.html
You could use EXISTS
UPDATE customers c
SET c.cutoffstop = c.cutoffstop + '432000'
WHERE EXISTS (
SELECT 1
FROM bluemedia b
WHERE c.id = b.customerid
AND b.orderid = '217201807'
);
Use this query for updation:
UPDATE customers
SET cutoffstop = cutoffstop + 432000
FROM bluemedia as b ON customers.id = b.customerid
WHERE b.orderid = '217201807'