Re: update table where rows are selected by inner join?
От | Stephan Szabo |
---|---|
Тема | Re: update table where rows are selected by inner join? |
Дата | |
Msg-id | 20040510150800.Y21776@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | update table where rows are selected by inner join? (Jeff Kowalczyk <jtk@yahoo.com>) |
Список | pgsql-sql |
On Mon, 10 May 2004, Jeff Kowalczyk wrote: > I have two tables orders and customerpaymentnote, which keep denormalized > columns of the status in rows related by orderid. The column duplication > is intentional, to ease end-user ad-hoc queries. I don't understand the > UPDATE FROM clause at: > http://www.postgresql.org/docs/7.4/static/sql-update.html > > I have a query working (slowly) in MS Access with the pgodbc driver, but I > need to know the Postgres version of the SQL. > > Working (but slow) MS Access version: > UPDATE orders > INNER JOIN customerpaymentnote > ON orders.orderid=customerpaymentnote.orderid > SET orders.customerdatetimepaid = customerpaymentnote.customerdatetimepaid, > orders.customerchargeaspaid = customerpaymentnote.customerchargeaspaid, > orders.customerchargestatus = "Payment-Recieved", > orders.orderworkflowbillingstateid = "Payment-Recieved"; > > Postgres translation, which does not yet work: > UPDATE orders > SET customerdatetimepaid = customerpaymentnote.customerdatetimepaid, > customerchargeaspaid = customerpaymentnote.customerchargeaspaid, > customerchargestatus = "Payment-Recieved", > orderworkflowbillingstateid = "Payment-Recieved" > FROM orders INNER JOIN customerpaymentnote > ON orders.orderid=customerpaymentnote.orderid I think you just want something like: FROM customerpaymentnote WHERE orders.orderid=customerpaymentnot.orderid; The update table (orders in this case) is effectively already included in the "from" list.
В списке pgsql-sql по дате отправления: