Mysql连接查询与group by

时间:2017-06-13 08:32:51

标签: php mysql join

我的数据库中有两个表

发布表(id,title,data)和tags表(id,post_id,tags)

标签表中的示例数据

标签表中的示例数据:

id  post_id tag
1   1   PHP
2   1   JS
3   2   C
4   2   C++
5   2   MySql

帖子表

id title date
1  post1 12/05/2015
2  post2  12/05/2016

我想要一个像这样的输出

示例输出:

id  title   tags
1   Post1   PHP, JS
2   Post2   C, C++,MySql

如何编写单个查询以获取此结果

目前我执行左连接

SELECT * FROM  posts  LEFT JOIN tags ON tags.post_id=posts.id GROUP BY tags.post_id

我知道group concat用于获取此结果,但我不知道如何使用它

1 个答案:

答案 0 :(得分:1)

使用组GROUP_CONCAT以逗号分隔值获取结果:

SELECT posts.id
     , posts.title
     , GROUP_CONCAT(tags.tag) 
  FROM  posts  
  LEFT 
  JOIN tags 
    ON tags.post_id = posts.id  
 GROUP 
    BY posts.id