Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql group_concat avec un compte à l'intérieur ?

Vous devez utiliser GROUP BY deux fois, d'abord sur (user_id, status) de follow pour obtenir le décompte puis sur user_id de la table jointe à concat :

SELECT users.name, GROUP_CONCAT( CONCAT(f.status, ',', f.cnt) SEPARATOR '|' )
FROM users 
JOIN
( SELECT user_id, status, count(id) AS cnt
  FROM application_follows
  GROUP BY user_id, status ) f
ON f.user_id = users.id
GROUP BY users.id