2017-02-16 6 views
0

У меня есть следующие таблицы«GROUP_CONCAT()» Несколько столбцов через внешний ключ

стол Книги

 
id  title  authors 
3  Linux 

стол авторов

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

Я хотел бы запросить авторам таблицу, чтобы получить автор столбец заполнил что-то подобное этой таблице, используя 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

Большое вам спасибо, это было полезно –