gpt4 book ai didi

sql - 将多对一关系的多个方面组合到一个字段中?

转载 作者:行者123 更新时间:2023-12-03 15:53:40 25 4
gpt4 key购买 nike

两个表:booksauthors。一本书可以有很多作者,就像短篇小说选集一样。

书籍

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

books_authors_link

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

我一直在研究 GROUP BY 和连接函数,我知道答案就在某处,但我就是不太明白。我可以通过在我的程序本身中使用数组和字符串连接来做到这一点,但这不是我正在寻找的优雅解决方案。此处提供提示将不胜感激。

如果它依赖于系统,我正在使用 SQLite 3。

最佳答案

您必须连接两个表,按书分组并在作者姓名列上应用 group_concat

该函数的官方文档为here

here´s another example I´ve found in stackoverflow

关于sql - 将多对一关系的多个方面组合到一个字段中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30868810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com