[英]mysql request using join and group_concat
我有三個表“名稱”,“組”,“任務”
“名”
| nid | name |
| 1 | John |
| 2 | Jim |
| 3 | Jerry |
“組”
| gid | nid |
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
| 2 | 3 |
“任務”
| tid | gid |
| 1 | 2 |
| 2 | 1 |
我想獲得一個名稱列表,該名稱屬於一個任務,如下所示:
| tid | names |
| 1 | Jim,Jerry |
| 2 | John,Jim |
我成功嘗試了:
SELECT t.tid,n.name
FROM tasks t
LEFT JOIN groups g ON g.gid=t.gid
LEFT JOIN names n ON n.nid=g.nid
到目前為止,該方法仍然有效,但是名稱位於單個輸出中,因此我嘗試使用GROUP_CONCAT()
,但這不起作用。 我只是用錯誤的名字完成了第一個任務!?!?
SELECT t.tid,GROUP_CONCAT(n.name)
FROM tasks t
LEFT JOIN groups g ON g.gid=t.gid
LEFT JOIN names n ON n.nid=g.nid
我以前從未使用過GROUP_CONCAT()
。 當在沒有連接的單個SELECT
使用它時,它工作得很好。 一個簡短的解釋,我做錯了,會很好。
使用group_concat
您需要將結果分組。
在查詢末尾添加group by t.id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.