gpt4 book ai didi

sql - SQL 的三重连接?

转载 作者:行者123 更新时间:2023-12-02 21:32:23 25 4
gpt4 key购买 nike

我的数据库代表一个图书馆。每本书都标记有多个内容,因此一个书名可能会被标记为“科幻小说”、“短篇小说”和“俄语”。

共有三个表:bookstagsbooks_tag_link。它们看起来像这样:

书籍

 ID     |     TITLE
-----------------------------
1 | Rendezvous With Rama
2 | Howl and Other Poems
3 | A Short History of Nearly Everything

标签

 ID     |     TAGNAME
-----------------------------
1 | science fiction
2 | fiction
3 | poetry

Books_Tag_Link

 BOOK     |     TAG
-----------------------------------
1 | 1
1 | 2
2 | 3

希望您能看到它是如何工作的。 books_tag_link 表有两个外键,将书籍链接到标签;每本书都有许多标签,每个标签与许多书相关联。我不知道这是否是最好的方法,但这就是 OSS 库程序 Calibre 所做的事情,这就是我在学习时用作引用的方法。

现在我想做的是“选择所有小说书”。但我不太能找到用 SQL 表达这种想法的正确方法。 选择 books.title,其中 books.id = Tags.id = books_tag_link.tag... 或其他内容。我不确定。

有人可以帮我提供建议或解释我应该做什么吗?

我目前正在使用 SQLite,但特定于 MySQL 的建议也很好。

最佳答案

SELECT b.title
FROM Books AS b
JOIN Books_Tag_Link AS bt ON b.id = bt.book
JOIN Tags AS t ON t.id = bt.tag
WHERE t.tagname = 'fiction'

关于sql - SQL 的三重连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065943/

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