Re: Update two tables returning id from insert CTE Query
От | Vitaly Burovoy |
---|---|
Тема | Re: Update two tables returning id from insert CTE Query |
Дата | |
Msg-id | CAKOSWNnbFvfztfdLjdM8exOPY34N7GWWCTZdnV1dQso=D8H2jg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Update two tables returning id from insert CTE Query (Patrick B <patrickbakerbr@gmail.com>) |
Ответы |
Re: Update two tables returning id from insert CTE Query
|
Список | pgsql-general |
On 9/26/16, Patrick B <patrickbakerbr@gmail.com> wrote: > 2016-09-27 16:22 GMT+13:00 Patrick B <patrickbakerbr@gmail.com>: > I'm doing this now: > > sel AS ( >> SELECT i.id AS c_id >> FROM (select id, row_number() OVER (ORDER BY id) AS rn FROM ins_table_1) >> i >> JOIN rows s USING (rn) >> ) >> UPDATE table_2 SET c_id = >> ( >> SELECT c_id >> FROM sel >> ORDER BY c_id >> ) >> WHERE clientid = 124312; > > > But I get *ERROR: more than one row returned by a subquery used as an > expression* > To update rows of one table by rows from another table you should use UPDATE ... SET ... FROM ... WHERE ... clause described in the docs[1] (see example around the sentence "A similar result could be accomplished with a join:" and note below). [1] https://www.postgresql.org/docs/devel/static/sql-update.html -- Best regards, Vitaly Burovoy
В списке pgsql-general по дате отправления: