Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 pgsql _SELECT to_jsonb() with INNER JOIN  [new]
Alex_Wong
Member

Откуда:
Сообщений: 164
В функции pgsql такой запрос даёт ошибку.
Если удалить:
to_jsonb(p.user_name) и to_jsonb(k.user_name)
то сработает.

SELECT jsonb_agg(to_jsonb(idm) || to_jsonb(fk_a) || to_jsonb(p.user_name) || to_jsonb(fk_b) || to_jsonb(k.user_name)) FROM
(select idm, fk_a, p.user_name, fk_b, k.user_name
        FROM public.msg as m
                           INNER JOIN public.tb p ON m.fk_a = p.id_user
                           INNER JOIN public.tb k ON m.fk_b = k.id_user
        WHERE fk_a = 1 AND k.id_user = 3 OR p.id_user = 3 AND fk_b = 1 ORDER BY idm ASC)
	as tbl
;

ERROR:  missing FROM-clause entry for table "p"


Читал в направлении JOIN LATERAL jsonb_array_elements(), - не уверен что по теме .. не получилось .. Подскажите, плиз.
22 июл 20, 21:52    [22171989]     Ответить | Цитировать Сообщить модератору
 Re: pgsql _SELECT to_jsonb() with INNER JOIN  [new]
Swa111
Member

Откуда:
Сообщений: 202
Alex_Wong,

не нужно указывать таблицы p. и k. так как они уже вне видимости

SELECT jsonb_agg(to_jsonb(idm) || to_jsonb(fk_a) || to_jsonb(p_user) || to_jsonb(fk_b) || to_jsonb(k_user)) FROM
(select idm, fk_a, p.user_name as p_user, fk_b, k.user_name as k_user
        FROM public.msg as m
                           INNER JOIN public.tb p ON m.fk_a = p.id_user
                           INNER JOIN public.tb k ON m.fk_b = k.id_user
        WHERE fk_a = 1 AND k.id_user = 3 OR p.id_user = 3 AND fk_b = 1 ORDER BY idm ASC)
	as tbl


Сообщение было отредактировано: 22 июл 20, 23:05
22 июл 20, 23:06    [22172022]     Ответить | Цитировать Сообщить модератору
 Re: pgsql _SELECT to_jsonb() with INNER JOIN  [new]
Alex_Wong
Member

Откуда:
Сообщений: 164
Swa111,
а как получить значения:
to_jsonb(p.user_name) и to_jsonb(k.user_name)
22 июл 20, 23:28    [22172034]     Ответить | Цитировать Сообщить модератору
 Re: pgsql _SELECT to_jsonb() with INNER JOIN  [new]
Alex_Wong
Member

Откуда:
Сообщений: 164
Swa111, круто, Ваш вариант работает, - спасибо.
22 июл 20, 23:35    [22172036]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить