Mysql GROUP_CONCAT умножается на основе количества - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь сделать mysql запрос, чтобы все строки GROUP_CONCAT из таблицы 'shop_previews'. Однако при выполнении следующего запроса он повторяется в зависимости от количества «timesBought».

select 
    `shop_items`.*, 
     group_concat(shop_previews.image) as images, 
     count(`shop_histories`.`shopId`) as `timesBought` 
from `shop_items`
left join `shop_previews` on `shop_previews`.`shopId` = `shop_items`.`id`
left join `shop_histories` on `shop_items`.`id` = `shop_histories`.`shopId`
group by `shop_items`.`id` 
order by `timesBought` desc

Так что, если timesBought равно двум, и в результате shop_previews.image был только один результат, он бы заключил, что одна запись с самим собой, в результате чего-то вроде

https://example.com/example.png,https://example.com/example.png

1 Ответ

3 голосов
/ 07 февраля 2020

GROUP_CONCAT() поддерживает DISTINCT:

GROUP_CONCAT(DISTINCT shop_previews.image) as images
...