SQL GROUP BY - несколько результатов в одном столбце? - PullRequest
0 голосов
/ 12 октября 2010

Я пытаюсь выполнить запрос 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

Где значения, разделенные запятыми, извлекаются из таблицы ваучеров.

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

Спасибо

1 Ответ

2 голосов
/ 12 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...