我的数据库表示一个库。每本书都有多个标签,这样一个标题可能被标记为“科幻小说”,“短篇小说”和“俄罗斯”。三重连接SQL?
有三个表格:books
,tags
和books_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表有两个外键,并将书籍链接到标签;每本书都有很多标签,每个标签都与很多书有关。我不知道这是否是做这件事的方式,但这是Caliber所做的OSS库程序,这就是我在学习时用作参考的一种方式。
现在我想要做的是说“选择所有的小说书籍”。但是我不能完全找出在SQL中表达这种思想的正确方法。 Select books.title where books.id = tags.id = books_tag_link.tag
...什么的。我不确定。
有人可以帮我解释一下我应该做什么吗?
我现在正在使用SQLite,但MySQL的具体建议也没关系。
您必须连接与连接表。 – Preprocezzor