繁体   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