mysql - group_concat mysql子查询只返回一项

标签 mysql sql

我有两个表,scoreTable 和 users。我试图在 scoreTable 上按哈希分组,但选择所有具有该哈希的用户名。 scoreTable 只有 id

SELECT st.score,
GROUP_CONCAT(st.uid) as userList
FROM scoreTable st
GROUP BY hash

对于上面的查询,我得到了 userList 中的用户 ID 列表:'1,2,3,4'

我想得到的是实际的“名称”而不是 id - 名称在另一个表(用户)上

SELECT st.score,
(SELECT group_concat(d.name) from users d d where d.uid = st.uid))
FROM scoreTable st
GROUP BY hash

但出于某种原因,这只显示一个用户(具有第一个 id 的用户)。

最佳答案

只需加入 users 表:

SELECT   st.score, group_concat(d.name)
FROM     scoreTable st
JOIN     users d ON d.uid = st.uid
GROUP BY hash

关于mysql - group_concat mysql子查询只返回一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20711142/

相关文章:

php - 是否有某种方法可以保证 memcached 中对象的持久性?

php - 与 PHP 和 MySQL 建立一对多关系的分页

php - 获取 MySQL 查询结果作为其原生数据类型?

mysql - 使用 str_to_date 未正确排序数据

mysql - 变量中的 Asterisk 短语变量?

php - 数据库错误: MySQL Error Number: 1064

mysql - 从php文件中的数据库获取数据

php - 1064 预约 Pro 出错

sql - Postgresql - ORDER BY random() 但也按 id 排序?

带字符串的 SQL 数据透视表