簡體   English   中英

使用join和group_concat的mysql請求

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

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