@Vaskey

Как создать функцию перебора в postgres?

Добрый день! У меня есть две таблицы: records и fields . В таблице records есть поля id и fields - например заполнено как:
1) id = 2 (int), fields = 1,2,3 (string),
2) id = 3 (int), fields = 4,2,1 (string)

и таблица fields заполнена:
1) id = 1, name=Давление
2) id = 2, name=Пульс
3) id = 3, name=Боль
4) id = 4, name=Радость

никак не могу понять как мне запросом из таблиц получить что то вроде
id(records)=2 fields=Давление, Пульс, Боль
id(recors)=3, fields=Радость, Пульс, Давление

т.е. выдавая строку records, перебирать значения его поля fields и вставлять в него значения из таблицы fields

Спасибо заранее за помощь
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Не благодарите:
SELECT records.id, array_agg(name) AS names
FROM records 
LEFT JOIN fields ON fields.id = ANY(records.fields)
GROUP BY records.id;


PostgreSQL fiddle

В любом случае, это плохая архитектура - хранить список id как строку
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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