Я пытаюсь выполнить запрос 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_CONCAT.
Предполагая, что столбец называется code
, вы просто добавите ,GROUP_CONCAT(v.code) As Codes
в список select
.