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;

