我试图为像我这样的初学者做一些非常复杂的事情。 我有三个MYSQL表:"书籍","类别"和一个名为" books_categories"的联结表。书籍表只包含不同的书名(可能也称为#34;产品"表)。类别表包含所有可能的"标签"对于一本书,如科幻,戏剧,惊悚片等。联结表包含每个书籍类别的关系。如果第3号书有两个标签(比如说科幻和惊悚片),那么这个表将保存两个记录,其中" book_id" = 3.
这是书籍表的代表:
id|name |author |publisher
----------------------------------------
1 |some book |some author|some publisher
2 |some book |some author|some publisher
3 |some book |some author|some publisher
类别表:
category_id|category_name
---------------------------
1 |sci-if
2 |horror
3 |thriller
4 |drama
books_categories表:
id|book_id|category_id
--------------------------
1 |2 |1
2 |2 |3
3 |3 |1
4 |4 |4
5 |4 |2
我想要做的是创建一个查询,只选择那些具有与之关联的特定类别的书籍。让我们说,用户希望该网站提供所有 BOTH 科幻和戏剧的书名。在口头上,查询看起来像这样:"选择所有与其相关的科幻 AND 电视剧的书名。
我尝试了各种JOINS和子查询,但没有产生所需的结果。我设法构建一个适合的查询,如果我必须选择 ONLY ONE CATEGORY ,而不是多个。请帮我解决一下:-)