@trancerr

Как сделать запрос из двух таблиц, строки из второй вывести в столбцы результата?

помогите разобраться, не пойму как запрос составить

пример - две таблицы такой структуры

1. заявки - order

id name price

1  order1 1000
2  order2 2000


2. доп поля заявки - attrib - то есть, может быть разное количество полей для заказа

id order_id attrib_id attrib_name attrib_value

id  order_id  attrib_id  attrib_name  attrib_value
 1  1          101        цвет         красный
 2  1          102        размер       100
 3  1          103        дата         30-10-2023
 4  2          101        цвет         зеленый
 5  2          102        размер       300

как сделать запрос, чтобы результат был вида:

order.id order.price   цвет       размер  дата
    1          1000     красный    100     30-10-2023
    2          2000     зеленый    300     null
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Это называется PIVOT и в MySQL выполняется с помощью группировки
select
    o.id, o.name, o.price,
    group_concat(case when attrib_name = 'цвет' then attrib_value end) color,
    group_concat(case when attrib_name = 'размер' then attrib_value end) size,
    group_concat(case when attrib_name = 'дата' then attrib_value end) date

from orders o
left join order_attributes oa on o.id = oa.order_id
group by o.id, o.name, o.price;


https://sqlize.online/sql/mysql57/6160136def9aeb4d...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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