SQL GROUP BY - несколько результатов в одном столбце?

0

Я пытаюсь выполнить запрос SELECT с помощью предложения GROUP BY, однако мне также нужно получить доступ к данным из нескольких строк и каким-то образом объединить их в один столбец.

Вот что я до сих пор:

SELECT
COUNT(v.id) AS quantity, 
vt.name AS name, 
vt.cost AS cost, 
vt.postage_cost AS postage_cost 
FROM vouchers v 
INNER JOIN voucher_types vt 
ON v.type_id = vt.id 
WHERE 
v.order_id = 1 AND 
v.sold = 1 
GROUP BY vt.id

Что дает мне первые четыре столбца, которые мне нужны в следующем формате.

quantity | name | cost | postage_cost
2           X      5         1
2           Y      6         1

Однако мне также хотелось бы показать пятый столбец, показывая все коды, связанные с каждой строкой порядка:

code
ABCD, EFGH
IJKL, MNOP

Если значения, разделенные запятой, вытягиваются из таблицы ваучеров.

Возможно ли это? Любые советы будут оценены.

Спасибо

Теги:
group-by

1 ответ

2
Лучший ответ

Это то, что делает GROUP_CONCAT.

Предполагая, что столбец называется code, вы просто добавите ,GROUP_CONCAT(v.code) As Codes в список select.

  • 0
    Спасибо! Я никогда не слышал об этом раньше

Ещё вопросы

Сообщество Overcoder
Наверх
Меню