显示可以在同一个表的列中具有相同数据的表中的数据

时间:2012-09-30 09:27:41

标签: mysql sql group-by group-concat

我从网上抓取了一些数据,然后直接将它们保存在数据库中,因此我得到了$title$url$author。但是,一个$author的{​​{1}}个数可以超过1个数据。因此,我将title$author$title分开了。所有$url都是自动增量。

id

在另一个进程中(从我得到的文件文件中,他们的文件名与$ title相同),我还有一个包含tb_wrapper tb_author ================= ================== |id| title | url| |id|author|$title| ================= ================== |1 |titleA |urlA| | 1| A |titleA| ================= | 2| B |titleA| =================== 的表:$title

tb_doc

我需要从这3个表中获取数据,所以我可以得到如下结果: ====================== |id | content | title| ====================== |1 | contentA|titleA| ======================

这是代码:

titleA has URLA contentA and author  A and B

但是,从那以后,我得到了重复的结果,作者A和B被分开了。拜托,帮助我,我必须加入什么?非常感谢你:))

1 个答案:

答案 0 :(得分:2)

像这样使用GROUP_CONCAT

SELECT w.url, w.title, a.title, a.authors, 
  d.content, d.title
FROM tb_doc d
INNER JOIN tb_wrapper w  ON d.title = w.title
INNER JOIN
(
   SELECT title, GROUP_CONCAT(author SEPARATOR ', ') AS authors
   FROM  tb_author
   GROUP BY title
 ) a ON w.title = a.title

SQL Fiddle Demo