一个 N-M 关系表的连接 SQL 输出

时间:2021-01-03 20:00:55

标签: sql sqlite

我有一个关系数据库,其架构是:

Book (ID INTEGER PRIMARY KEY, title TEXT)
Author (ID INTEGER PRIMARY KEY, name TEXT)
BookAuthor (book_id INTEGER, author_id INTEGER)

注意:BookAuthor 表中存在明显的 FOREIGN KEY 约束,但我在上面省略了它们只是为了节省空间

BookAuthor 是将一本书与一位作者相关联的表。

现在,如果我想打印一本书及其作者,我可以使用:

SELECT book.title, author.name 
FROM book 
LEFT JOIN BookAuthor ON Book.id = BookAuthor.book_id 
LEFT JOIN author ON author.id = BookAuthor.id

(如果我还想列出数据库中没有可用作者的书籍,则需要 LEFT JOIN)。

输出是

Book1|Author1
Book1|Author2
Book1|Author3
Book2|Author4
Book2|Author2
Book3|Author5
...

我想知道是否有办法将所有标题合并成一行,打印类似

Book1|Author1, Author2, Author3
Book2|Author4, Author2
Book3|Author5

仅使用 SQL(当然我可以对数据进行后处理,我只是好奇是否可以)?

0 个答案:

没有答案