sql:почему запрос повторяет значения при использовании 'GROUP CONCAT' + 'GROUP BY'?
-
18-09-2019 - |
Вопрос
Запрос:
SELECT MemberId, a.MemberName, GROUP_CONCAT(FruitName) FROM a LEFT JOIN b ON
a.MemberName = b.MemberName GROUP BY a.MemberName
Таблица а
MemberID MemberName
-------------- ----------
1 Al
1 Al
3 A2
Таблица в
MemberName FruitName
--------------- --------------
Al Apple
Al Mango
A2 Cherry
Результирующий вывод из приведенного выше запроса:
MemberId MemberName GROUP_CONCAT(FruitName)
3 A2 Cherry
1 A1 Apple,Apple,Mango,Mango
Фактические таблицы, которые я использую, содержат по 10 столбцов в каждой, поэтому простое хранение всего в одной таблице не является обходным решением.Тем не менее, как я могу изменить запрос так, чтобы он возвращал только 'Apple,Mango'
для MemberNam
e?
Решение
Добавьте ключевое слово ОТЧЕТЛИВЫЙ к сгруппированному столбцу:
GROUP_CONCAT(DISTINCT FruitName)
Другие советы
попробуй
GROUP_CONCAT(Distinct FruitName)
SELECT MemberId, a.MemberName, GROUP_CONCAT(DISTINCT FruitName)
FROM a
LEFT JOIN
b
ON a.MemberName = b.MemberName
GROUP BY
a.MemberName
Не связан с StackOverflow