2017-02-16 68 views
0

我有以下表“GROUP_CONCAT()” 多通过列外键

书籍表

 
id  title  authors 
3  Linux 

authors表

 
id firstname lastname fk 
1  name  name  3 
2  name2  name  3 

我想查询authors表以获取作者列使用GROUP_CONCAT()填充类似此表的东西

 
id title   authors 
3 Linux name name | name2 name2 

回答

0

为单本图书的ID,你知道,你可以得到作者的列表,像这样的单个值:

SELECT group_concat(firstname || ' ' || lastname) 
FROM authors 
WHERE fk = ?; 

在实际的查询就用这个作为一个correlated subquery

SELECT id, 
     title, 
     (SELECT group_concat(firstname || ' ' || lastname, ' | ') 
     FROM authors 
     WHERE fk = book.id 
     ) AS authors 
FROM book; 
+0

非常感谢,这很有帮助 –