是否可以在两个col上使用mysql group_concat以在一个col中获得结果?

是否可以在两个col上使用mysql group_concat以在一个col中获得结果?,mysql,Mysql,我有这样一个问题: SELECT a.sec_id as sid, r.rank FROM `0_area` AS a LEFT JOIN `0_rank` AS r ON a.rank_id = r.id WHERE a.user_id = $id GROUP BY a.sec_id 它将返回包含两列的行。作为: sid | rank 2 | user 3 | mod 4 | admin 我想在另一个查询中使用它,同时将两个返回的行放在一列中,可能像本例中那样使用group_c

我有这样一个问题:

SELECT a.sec_id as sid, r.rank
FROM `0_area` AS a
LEFT JOIN `0_rank` AS r ON a.rank_id = r.id
WHERE a.user_id = $id
GROUP BY a.sec_id
它将返回包含两列的行。作为:

sid | rank
2   | user
3   | mod
4   | admin
我想在另一个查询中使用它,同时将两个返回的行放在一列中,可能像本例中那样使用group_concat。下面的示例此时不起作用

SELECT m.id, m.nom, a.sec_id, a.rank, GROUP_CONCAT( cast( DISTINCT a.sec_id # r.rank 
ORDER BY a.sec_id ASC
SEPARATOR ',' ) AS char ) AS levels
FROM `0_member` AS m
LEFT JOIN `0_area` AS a ON m.id = a.user_id
LEFT JOIN `0_rank` AS r ON r.id = a.rank_id
WHERE a.sec_id =2
ORDER BY m.nom ASC
谢谢

另外,我得到的错误是:#1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行中使用“DISTINCT a.sec_id#r.rank ORDER BY a.sec_id ASC SEPARATOR”,“as char)as lev”附近的正确语法,这解决了问题

GROUP_CONCAT( cast( concat( a.sec_id, \': \', a.rank ) AS char ) SEPARATOR \', \') AS ranks

第一:您的第一个查询没有意义,并且不是有效的SQL(尽管是有效的MySql),因为r.rank没有很好地定义。第二:不,你不能(据我所知)。第三:你能解释一下你真正想要什么吗?可能有一个很好的解决方案。