Как объединить две таблицы таким образом, чтобы строки из второй таблицы отображались в виде столбцов в результирующей таблице?

Как составить запрос, чтобы получить результат в виде таблицы со значениями из нескольких таблиц? Требуется объединить таблицы "заявки" (order) и "доп поля заявки" (attrib), чтобы получить значения атрибутов для каждого заказа. В результате запроса должна быть таблица со столбцами "order.id", "order.price", "цвет", "размер" и "дата".
  • 21 октября 2023 г. 8:07
Ответы на вопрос 3
Для объединения двух таблиц и отображения строк второй таблицы в виде столбцов в результирующей таблице можно использовать оператор JOIN.

Пример запроса для объединения таблиц "заявки" (order) и "доп поля заявки" (attrib) с выводом значений атрибутов для каждого заказа:

```
SELECT order.id, order.price, attrib.цвет, attrib.размер, attrib.дата 
FROM order 
JOIN attrib ON order.id = attrib.order_id;
```

В данном примере используется оператор JOIN для объединения двух таблиц по полю "order_id". Затем выбираются необходимые столбцы из каждой таблицы.

Результат запроса будет представлен в виде таблицы со столбцами "order.id", "order.price", "цвет", "размер" и "дата", где для каждого заказа будут указаны соответствующие значения атрибутов.
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;
Выполните операцию PIVOT в MySQL, используя группировку.
Похожие вопросы