我有一个包含以下列的表:
boxid - nouns - username
1 - w1,w2,w3 - user1
1 - w3,w2,w4 - user2
1 - w1,w8,w5 - user1
2 - w7,w2,w5 - user2目前,我有一个查询,它允许我提取以下内容:
SELECT boxid, group_concat(concat(username,":",nouns) SEPARATOR "|") as listn
FROM table group by boxid;该查询返回给我以下内容:
box1 - user1:w1,w2,w3|user2:w3,w2,w4|user1:w1,w8,w5但是,我希望获得同一用户的所有名词,而不重复用户(但重复每个用户的单词),结果如下:
box1 - user1:w1,w2,w3,w1,w8,w5|user2:w3,w2,w4谁能告诉我这是否可以用mysql实现,以及如何实现?我对此一无所知。
(我可以用php做到这一点,但我认为用sql获得直接结果会更快……)
先谢谢你...
发布于 2011-08-10 10:33:07
试试这个:
SELECT boxid, group_concat(concat(username,":",nouns_list) SEPARATOR "|") as listn
FROM
(
SELECT boxid, username, group_concat(nouns) as nouns_list
FROM table
GROUP BY boxid, username
) a
GROUP BY boxidhttps://stackoverflow.com/questions/7005173
复制相似问题