繁体   English   中英

串联mysql中的值,其中一个表中的多行与另一表中的一行相关

[英]Concatenating values in mysql where multiple rows in one table relate to one row in another table

我有两个mysql表,一个列出文章名称,另一个列出与每篇文章相关的作者,如下所示:

   article_id     title
 =======================
        1         art1
        2         art2
        3         blob


  article_id      name      surname
 =====================================
       1           jack       smith
       1           jill       jones
       1           rob        edgar
       2           billy      bryce
       3           dick       bonsor
       3           jeff       kucick

我正在尝试创建一个查询,该查询将返回以下内容:

 article_id     title                 author
 =========================================================
      1          art1     jack smith, jill jones, rob edgar 
      2          art2                billy bryce
      3          blob          dick bonsor, jeff kucick

我一直在查看group_concat和concat_ws,但是在尝试返回上述结果时我一直没有成功。 如果您对此有任何想法,我将不胜感激!

非常感谢。

select
  a.article_id,
  a.title,
  group_concat(concat(p.name, ' ', p.surname)) as author
from
  article a
  inner join author p on p.article_id = a.article_id
group by
  a.article_id, 
  a.title

或者,如果您想使用concat_ws:

select
  a.article_id,
  a.title,
  group_concat(concat_ws(' ', p.name, p.surname)) as author
from
  article a
  inner join author p on p.article_id = a.article_id
group by
  a.article_id, 
  a.title

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM