我試圖擺脫this previous answer的結果,但似乎沒有任何效果。我有一個幾乎相同的設置,只是一個不同類型的文件。MySQL - 帶連接的GROUP_CONCAT產生1054錯誤
文件表files
id file_name
1 1e462cef-1c2c-4ddf-8b48-0b3002e2101d.nzb
2 303dc268-bf55-49e5-9901-cfbb99b09a69.nzb
3 1297993d-784b-4996-b3b9-9048b068652b.nzb
4 a2cebf3a-b3b1-498e-ad4c-100774ff4b9d.nzb
標籤表tags
id tag_name
1 no.mirrors
2 at.least.one.mirror
3 multiple.mirrors
4 no.mirrors
5 original.deleted
文件標籤關係表files__tags
file_id (FK to files.id) tag_id (FK to tags.id)
1 1
1 5
2 1
3 3
3 5
4 4
,所以我希望得到一些輸出,如:
file_id file_name tags
1 1e462cef-1c2c-4ddf-8b48-0b3002e2101d.nzb 1,5
2 303dc268-bf55-49e5-9901-cfbb99b09a69.nzb 1
3 1297993d-784b-4996-b3b9-9048b068652b.nzb 3,5
4 a2cebf3a-b3b1-498e-ad4c-100774ff4b9d.nzb 4
我試圖重新對前一個問題是這樣的回答我的查詢:
SELECT files.file_name, GROUP_CONCAT(files__tags.tag_id) AS associated_tags
FROM files
LEFT OUTER JOIN tags ON files__tags.file_id = files.id
GROUP BY files.file_name;
我嘗試了一些其他的事情,在對這個問題的回答引用了一個tag.photo
,這個問題在問題提供者提供的簡化表格結構中不存在,我認爲這是表格中關於照片和標籤的拼寫錯誤。
反正我得到的錯誤是:
SQL query:
SELECT files.file_name, GROUP_CONCAT(files__tags.tag_id) AS associated_tags
FROM files
LEFT OUTER JOIN tags ON files__tags.file_id = files.id
GROUP BY files.file_name LIMIT 0, 25
MySQL said:
#1054 - Unknown column 'files__tags.tag_id' in 'field list'
以上所有列的存在。
非常感謝任何想法!
編輯:我已經試過了兩點建議(添加關係數據庫到FROM
和逃避表/列名)
SELECT files.file_name, GROUP_CONCAT(files__tags.tag_id) AS associated_tags
FROM files,files__tags
LEFT OUTER JOIN tags ON `files__tags`.`file_id` = `files`.`id`
GROUP BY files.file_name;
我也嘗試過每一種事情上自己,逃生整個語句中的所有表/列名稱。
有了逃避我得到:
#1054 - Unknown column 'files__tags.tag_id' in 'field list'
隨着FROM
評爲files__tags
表我得到:
#1054 - Unknown column 'files.id' in 'on clause'
EDIT2:好的,謝謝多的解決方案
SELECT files.file_name, GROUP_CONCAT(files__tags.tag_id) AS associated_tags
FROM files
LEFT JOIN files__tags ON files__tags.file_id =files.id
LEFT OUTER JOIN tags ON tags.id=files__tags.tag_id
GROUP BY files.file_name LIMIT 0, 25
我可以知道這是什麼'files__tags'? –
這是與文件和標籤相關的表格(上面標有它們) – incorpusyehtee
所以你必須在'JOIN'或'FROM'子句中提到該表格。 –