我有一个包含三个表的数据库,一个包含标题,一个包含作者,另一个包含两者。大多数作品都有一位作者,但有些作者不止一本。我能够返回我想要的行,但是具有多个作者的标题为每个标题返回一行,一个有一个作者,另一个有另一个作者,如你所料。我可以将作者合并成一行吗?
这是我的陈述
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是标题的第一个字母。
答案 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