Я предполагаю, что вы используете sql-сервер для этого, но вы можете изменить запрос для работы с MySQL.
Этот запрос немного сложен, но вы можете использовать аргумент STUFF для объединенияструны.Он будет выглядеть как запрос, подобный следующему:
SELECT
[a],
STUFF((
SELECT ', ' + [b]
FROM #YourTable
WHERE (a = 1)
FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
,1,2,'') AS NameValues
FROM #YourTable Results
GROUP BY [a]
По сути, вы используете аргумент STUFF для перебора строк, где a = 1 в вашей таблице, и объединения их с запятой и пробелом вмежду каждым значением для столбца [b].Затем вы группируете их по столбцу [a], чтобы предотвратить возврат одной строки для каждой исходной строки [a] в таблице.
Я рекомендую вам проверить этот пост на кредитына запрос и другие возможные решения вашего ответа.