Сейчас при запросе к базе данных использую функцию pg_fetch_all для сбора всех данных. Но проблема в том, что если я сделаю запрос по значению, которого в таблице не существует, то функция мне ничего не вернёт. Например, я делаю запрос ... IN ('moscow', 'saint-petersburg', 'khabarovsk'). И функция pg_fetch_all вернёт ассоциативный массив длинной в 3 элемента. Но если в таблице нет записи со значением поля saint-petersburg, то вернётся массив всего из двух записей, где на втором месте будет расположена информация о Хабаровске. А мне важна последовательность. То есть, нужно, чтобы функция не просто пропускала несуществующие записи, а вставляла вместо них пустой массив - array(). Как это сделать?
Не совсем уверен в правильности всего запроса целиком но направление точно задаст:
with tmp_data (id,value) as
(VALUES
(1,'moscow'),
(2,'saint-petersburg'),
(3,'khabarovsk')
)
Select
c.*
from
tmp_data z
left join cities_data c on z.value = c.page_id
order by tmp_data.id
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости