0

クエリで、最も多く報告された (機能する) エントリと、指定されたすべての理由 (機能しない) を表示したいと考えています。現在のクエリでは、すべての理由ではなく、1 つの理由しか得られません。(関数 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 に答える