0

我希望我的查询显示哪些条目被报告最多(哪些有效)以及给出的所有原因(哪些不起作用)。根据我当前的查询,我只得到一个原因而不是所有原因。(我尝试了函数 concat_ws(),但它似乎不是正确的)。有人可以帮忙吗?

SELECT `entries`.`id`, count(`reports`.`id`) AS `amount`, 
concat_ws(', ',`reports`.`reason`) AS `reasons` 
FROM `entries` 
CROSS JOIN `reports` ON (`entries`.`id` = `reports`.`entry_id`) 
GROUP BY `entries`.`id` ORDER BY `amount` DESC
4

1 回答 1

3

您应该使用GROUP_CONCAT聚合函数:

SELECT
  `entries`.`id`,
   count(`reports`.`id`) AS `amount`, 
   group_concat(`reports`.`reason` SEPARATOR ', ') AS `reasons` 
FROM
  `entries` CROSS JOIN `reports`
  ON (`entries`.`id` = `reports`.`entry_id`) 
GROUP BY
  `entries`.`id` ORDER BY `amount` DESC
于 2013-02-05T08:46:43.690 回答