数据库结构
项目:id, name
用户:id, username
user_items:id, user_id, item_id
我目前在 user_items
上有一个 count()
,它显示拥有最多项目的用户:
john: 13
bill: 9
lily: 9
kent: 9
seth: 8
vick: 8
anna: 7
但我想以这种方式显示它:
13: john
9: bill, lily, kent
8: seth, vick
7: anna
如何在 blade 中使用 laravel 的查询系统来实现这一点?
最佳答案
不确定 Laravel,但这是纯 MySQL 版本:
SELECT itemCount, GROUP_CONCAT(username)
FROM
(
SELECT tblU.user_name, COUNT([DISTINCT] tblUI.item_id) AS itemCount
FROM users AS tblU
INNER JOIN user_items AS tblUI ON tblU.id = tblUI.user_id
GROUP BY tblU.user_name
) AS uic
GROUP BY itemCount
注意,DISTINCT 是可选的,因此是方括号。此外,如果您希望用户没有任何项目,您可以将 JOIN 设为 LEFT JOIN。
关于php - 用逗号分隔具有相同行数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792772/