尝试使用MySql“合并”2行或更多行中的部分数据

时间:2011-09-30 03:58:49

标签: mysql

我有一个包含三个表的数据库,一个包含标题,一个包含作者,另一个包含两者。大多数作品都有一位作者,但有些作者不止一本。我能够返回我想要的行,但是具有多个作者的标题为每个标题返回一行,一个有一个作者,另一个有另一个作者,如你所料。我可以将作者合并成一行吗?

这是我的陈述

SELECT DISTINCT t.id, t.title, t.notes, 
a.lastname, a.firstname, a.middlename
FROM titles t, author a, authortitle at
WHERE  t.title LIKE '".$letter."%'
AND at.author_id_fk = a.id
AND at.title_id_fk = t.id

$ letter是标题的第一个字母。

1 个答案:

答案 0 :(得分:0)

试试这个;

SELECT t.id, t.title, t.notes, 
GROUP_CONCAT( CONCAT(a.lastname, a.firstname, a.middlename) SEPARATOR ', ') AS author
FROM titles t, author a, authortitle at
WHERE  t.title LIKE '".$letter."%'
AND at.author_id_fk = a.id
AND at.title_id_fk = t.id
GROUP BY t.id