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="" ) 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="" ) 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="" ) 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="" ) 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