2プライマリ・テーブルがある場合、多くの選択:上のテーブルを結合する
製品
- ID
- 名
フィルタ
-
は、
- ID
- 名
そして、もう一つの接続テーブル
product_filter
- は、私たちが言う
- filter_id
をPRODUCT_IDいくつかの製品といくつかのフィルターがあります。そして、私たちはid 1を持つ1つの特別な製品を持っています。これらのフィルタの名前はids1と2の白黒です。つまり、(product_id:1、filter_id:2)、(product_id:1、filter_id:2)の2つのフィールドがあります。私はその製品を選択したい。
私が試したこと。まず、where or
節を試しました:select * from products join product_filter on product_filter.product_id = products.id join filters on filters.id = product_filter.filter_id where filters.name = "black" or filters.name = "white"
。しかし、この選択製品には、黒または唯一の白フィルタだけがあります。 or
の代わりにand
節を使用すると、何も選択されません。
のように通常のソリューションは、IN()、GROUP BY、HAVING、およびCOUNTを含み、この場合、二回
filters
テーブルに参加できます – Strawberry