Sql 将多对一关系的多方面合并到一个领域?
两个表格:Sql 将多对一关系的多方面合并到一个领域?,sql,sqlite,Sql,Sqlite,两个表格:书籍和作者。一本书可以有许多作者,就像一本短篇小说选集 书 作者 书籍作者链接 我想做的是返回一个表,其中每一行都是一本书,“authors”字段是一个逗号分隔的所有作者列表,例如 查询结果 我一直在玩groupby和串联函数,我知道答案就在那里,但我就是不太明白。我可以通过在我的程序中处理数组和字符串连接来实现这一点,但这不是我正在寻找的优雅解决方案。这里的提示将不胜感激 如果SQLite 3依赖于系统,我将使用它。您必须将两个表连接起来,一本一本地分组,并在author name列
书籍
和作者
。一本书可以有许多作者,就像一本短篇小说选集
书
作者
书籍作者链接
我想做的是返回一个表,其中每一行都是一本书,“authors”字段是一个逗号分隔的所有作者列表,例如
查询结果
我一直在玩groupby
和串联函数,我知道答案就在那里,但我就是不太明白。我可以通过在我的程序中处理数组和字符串连接来实现这一点,但这不是我正在寻找的优雅解决方案。这里的提示将不胜感激
如果SQLite 3依赖于系统,我将使用它。您必须将两个表连接起来,一本一本地分组,并在author name列上应用一个
group\u concat
该功能的官方文档如下所示
及
id | title
--------------------
1 The Time Machine Did It
2 Snakes in Suits
3 Ghost in the Wires
id | name
------------------------
1 Stephen King
2 John Swartzwelder
3 Robert D. Hare
4 Kevin Mitnick
5 William L. Simon
6 Steve Wozniak
7 Paul Babiak
book_id | authors_id
---------------------------
1 2
2 3
2 7
3 4
3 5
3 6
title | authors
---------------------------------
The Time Machine Did It John Swartzwelder
Snakes in Suits Robert D. Hare, Paul Babiak
Ghost in the Wires Kevin Mitnick, William L. Simon, Steve Wozniak