我有三张桌子:books
,book_categories
,categories
。book_categories
表“连接”books
和categories
。它包含列:id
,book_id
,category_id
。
所以一本书可能属于许多类别,一个类别可能有许多书。
我需要从given_category
检索所有书籍的查询,但属于given_set_of_categories
的书籍除外。例如,我想要A类的所有书籍,但前提是它们不属于B类或C类。我还需要按Book.inserted列对结果排序。
我知道如何使用2个连接从given_category
中获取所有图书,但无法找出如何在结果中将某些图书从其他类别中排除。我无法在PHP中筛选书籍,因为我正在对搜索结果进行分页。
最佳答案
where
category_id = <given category>
and books.book_id not in
(
select book_id from book_categories
where category_id in (<given set of cat>)
)
order by books.inserted
关于mysql - 从一个类别中选择所有书籍,但属于另一类别的书籍除外,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13408581/