@CenterJoin

ERROR: invalid reference to FROM-clause entry for table «t»?

SELECT c.*, t.id, t.campaign_status_id, t.search, d.list
FROM   campaign t, LATERAL (
  SELECT array_agg(value::int) AS list
  FROM   jsonb_array_elements_text(t.search->'tags_in')
  ) d
LEFT JOIN campaign_status c ON t.campaign_status_id = c.id
where d.list && array[102,83,55]


Почему ошибка в этом запросе?
[42P01] ERROR: invalid reference to FROM-clause entry for table "t" Hint: There is an entry for table "t", but it cannot be referenced from this part of the query.
  • Вопрос задан
  • 1021 просмотр
Пригласить эксперта
Ответы на вопрос 1
og_sergo
@og_sergo
Привет!
Была аналогичная ошибка.
Она связана с тем, что в конструкции
LATERAL (
  SELECT array_agg(value::int) AS list
  FROM   jsonb_array_elements_text(t.search->'tags_in')
  ) d

отсутствует элемент id, который позже используется для LEFT JOIN.
Мне помогло поменять местами jsonb_array_elements_text(t.search->'tags_in') и LEFT JOIN, однако пришлось немного отредактировать запрос для корректного JOIN.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы