[英]mysql query group by in group_concat
我有以下查詢:
SELECT files.file_name, files.locked, projects.project_name,
group_concat( versions.version, versions.language SEPARATOR ' & ')
FROM files
JOIN `projects` ON (files.project_id = projects.project_id)
JOIN `versions` ON (files.file_id = versions.file_id)
WHERE files.file_id = '1'
ORDER BY projects.project_name ASC
這給了我這張桌子:
filename - 1 - projectname - 0.1EN & 0.2FR & 0.3DE & 0.1IT
我想要的是輸出這樣的輸出的查詢:
filename - 1 - projectname - 0.1-EN,IT & 0.2-FR & 0.3-DE
所以我試過這個:
group_concat( versions.version, versions.language GROUP BY versions.version SEPARATOR ' & ')
但是mysql不喜歡那樣。 我怎樣才能得到我想要的結果? 謝謝。
編輯:樣本表!
試一試,
SELECT a.file_name,
a.locked,
b.project_name,
GROUP_CONCAT(c.version, c.language SEPARATOR ' & ')
FROM files a
INNER JOIN projects b
ON a.project_id = b.project_ID
INNER JOIN
(
SELECT file_ID, `version`, GROUP_CONCAT(language) language
FROM versions
GROUP BY file_ID, `version`
) c ON a.file_ID = c.file_ID
WHERE a.file_ID = 1
GROUP BY a.file_name,
a.locked,
b.project_name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.