2013-12-20 81 views
1

我有兩張表,scoreTable和users。我試圖通過對scoreTable進行散列分組,但選擇具有該散列的所有用戶名。 scoreTable不僅具有IDSgroup_concat mysql子查詢只返回一個項目

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

以上查詢我得到的用戶ID的用戶列表名單:'1,2,3,4'

我很想得到的是代替IDS實際的「名」 - 名字是另一個表(用戶)

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

但出於某種原因,這只是顯示一個用戶(與第一ID的用戶)。

+0

把GROUP BY在子查詢 – Mihai

回答

2

剛剛加入的users表:

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

+1如果分數的基數匹配的哈希 – Cez

+0

的@Cez在OP的第一個查詢假定這一點,我只是進行了這個假設 – Mureinik

+0

工作非常感謝,現在要弄清楚如何以JSON格式group_concat名稱和ID,如果名稱有雙引號不會中斷... – K2xL