私は3つのテーブルを持っています:books
、、。book_categories
categories
book_categories
テーブル「結合」books
とcategories
。列が含まれています:id
、、。book_id
category_id
したがって、1冊の本が多くのカテゴリに属し、1つのカテゴリに多くの本が含まれる場合があります。
given_category
に属する本を除くすべての本を取得するクエリが必要given_set_of_categories
です。たとえば、カテゴリAのすべての本が必要ですが、カテゴリBまたはCにも属していない場合に限ります。また、結果をBook.inserted列で並べ替える(並べ替える)必要があります。
2つの結合ですべての本を取得する方法は知ってgiven_category
いますが、結果として他のカテゴリから一部の本を除外する方法がわかりません。検索結果をページ分割しているため、PHPで本をフィルタリングできません。