2
我有這樣的查詢:是否有可能在兩列上使用mysql group_concat在一個列中得到結果?
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
謝謝。
PS。我得到的錯誤是:#1064 - 你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行的'DISTINCT a.sec_id#r.rank ORDER BY a.sec_id ASC SEPARATOR','as char)as lev'處使用正確的語法。
第一:第一個查詢是沒有意義的,而不是有效的SQL(雖然有效的MySQL),因爲r.rank並不明確。其次:不,你不能(據我所知)。第三:你能否解釋你真正想要的 - 有可能是一個好的解決方案。 – Erik 2011-04-23 17:59:44