UPDATE from CTE syntax error - Mailing list pgsql-general
From | Alexander Farber |
---|---|
Subject | UPDATE from CTE syntax error |
Date | |
Msg-id | CAADeyWgGcDe652eet9cTKdcycLfym8GL7u4fxQf4Ye+BzuHzdQ@mail.gmail.com Whole thread Raw |
Responses |
Re: UPDATE from CTE syntax error
Re: UPDATE from CTE syntax error |
List | pgsql-general |
Good evening,
I am struggling with the syntax, please help.
This query with a CTE works ok:
WITH extract_letters AS ( SELECT mid, STRING_AGG(x->>'letter', '') AS letters FROM ( SELECT mid, JSONB_ARRAY_ELEMENTS(tiles) AS x FROM words_moves WHERE action='play' ) z GROUP BY mid) SELECT * from extract_letters;
mid | letters
--------+---------
12 | АКЖОЛ
15 | ДМО
16 | ТО
20 | ШГА
21 | КТИ
22 | ВОЗ
24 | АКПОНК
But UPDATEing from the CTE does not -
WITH extract_letters AS ( SELECT mid, STRING_AGG(x->>'letter', '') AS letters FROM ( SELECT mid, JSONB_ARRAY_ELEMENTS(tiles) AS x FROM words_moves WHERE action='play' ) z GROUP BY mid) UPDATE words_moves m SET m.letters = el.letters FROM extract_letters el WHERE m.mid = el.mid;
ERROR: 42703: column "m" of relation "words_moves" does not exist
LINE 14: SET m.letters = el.letters
^
I am struggling with the syntax, please help.
This query with a CTE works ok:
WITH extract_letters AS ( SELECT mid, STRING_AGG(x->>'letter', '') AS letters FROM ( SELECT mid, JSONB_ARRAY_ELEMENTS(tiles) AS x FROM words_moves WHERE action='play' ) z GROUP BY mid) SELECT * from extract_letters;
mid | letters
--------+---------
12 | АКЖОЛ
15 | ДМО
16 | ТО
20 | ШГА
21 | КТИ
22 | ВОЗ
24 | АКПОНК
But UPDATEing from the CTE does not -
WITH extract_letters AS ( SELECT mid, STRING_AGG(x->>'letter', '') AS letters FROM ( SELECT mid, JSONB_ARRAY_ELEMENTS(tiles) AS x FROM words_moves WHERE action='play' ) z GROUP BY mid) UPDATE words_moves m SET m.letters = el.letters FROM extract_letters el WHERE m.mid = el.mid;
ERROR: 42703: column "m" of relation "words_moves" does not exist
LINE 14: SET m.letters = el.letters
^
Regards
Alex
pgsql-general by date: