簡體   English   中英

group_concat中的mysql查詢組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM