Задать вопрос
@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.
  • Вопрос задан
  • 1285 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • OTUS
    PostgreSQL. Advanced
    4 месяца
    Далее
  • Учебный центр IBS
    QPT PostgreSQL 16. Оптимизация запросов
    1 неделя
    Далее
  • Слёрм
    PostgreSQL База
    4 недели
    Далее
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы