Я не думаю, что вы сможете получить их в отдельных строках, как вы показываете (если вы не посмотрите на функцию ROLLUP
), но это, вероятно, не является обязательным для вас.
Я думаю, вы должны использовать GROUP_CONCAT
, что-то вроде функции агрегации вроде SUM
, но она создает список через запятую из всех значений:
SELECT
*
SUM(sale_amount) as total_sales,
GROUP_CONCAT(item_name) as item_names
FROM customers c
JOIN sales s USING (customer_id)
JOIN sale_items si USING (sale_id)
JOIN stock_items sit USING (stock_item_id)
GROUP BY customer_id
Что вы должны увидетьПример строки:
Denver Doe Coffee,Milk,Bread,Bread 125
(Мне пришлось составить несколько имен столбцов, например, sale_amount, но я уверен, что они должны быть там. Вам нужно будет внести некоторые коррективы в этиимена и, возможно, в том, как я сделал соединения, но это должно работать с некоторыми изменениями, если я понимаю ваши потребности).