SQL - Дополнение выборки из второй таблицы пользовательских свойств

Требуется извлечь данные из двух таблиц. При этом данные в первой таблице (projects) кастомизированы пользовательскими свойствами из второй (custom_values). Список и тип пользовательских свойств описан в третьей таблице (custom_fields):

введите сюда описание изображения

Нужно написать запрос который извлекает данные из первой таблицы (projects), добавляя к ним все кастомные свойства, относящиеся к записи, из таблицы значений пользовательских свойств (custom_values). Примерно так:

введите сюда описание изображения

Структуру БД менять я не могу, но могу добавить процедуру или представление.


Ответы (1 шт):

Автор решения: Vladimir

Нашёл решение, может кому-то пригодится:

SELECT p.name, p.description,
       MAX(CASE WHEN cv.custom_field_id = 4 THEN cv.value END) AS value_1,
       MAX(CASE WHEN cv.custom_field_id = 5 THEN cv.value END) AS value_2,
       MAX(CASE WHEN cv.custom_field_id = 6 THEN cv.value END) AS value_3
FROM projects p LEFT JOIN
     custom_values cv
     ON cv.customized_id = p.id
     GROUP BY p.name, p.description;
→ Ссылка