id、parent、およびnameフィールドを持つカテゴリテーブルがあります。親フィールドを使用すると、カテゴリを別のカテゴリのサブカテゴリにすることができます。
2 つのメイン カテゴリ (WIDGETS と THINGAMABOBS) があり、WIDGETS には 3 つのサブカテゴリがあるカテゴリテーブルの例:
- ID 1、親 null、名前「WIDGETS」
- ID 2、親 1、名前「GADGETS」
- ID 3、親 1、名前「DOOHICKEYS」
- ID 4、親 1、名前「GIZMOS」
- ID 5、親 null、名前「THINGAMABOBS」
カテゴリフィールドを持つ製品テーブルがあります
製品が「GIZMOS」カテゴリにリンクされている製品レコードの例:
- id 1、カテゴリ4、name Contraption 5000
SELECT ステートメントでカテゴリ名を指定して、そのカテゴリに含まれるすべての製品を取得できるようにしたいと考えています。しかし、「GIZMOS」で上記のレコードを検索したいだけでなく、MEDIUM WIDGET は WIDGET の子であるため、「WIDGET」という名前でも検索できるようにしたいと考えています。これは、無制限の数のレベル (つまり、サブサブサブカテゴリ) で機能するはずです。
これをさらに複雑にするために、製品を複数のカテゴリに割り当てることができるようにしたいと考えています。おそらくそれらはコンマで区切られますか?例: からくり 5000 を Doohickeys と Thingamabobs のカテゴリに含めたい場合は、カテゴリフィールドに 3.5 を入力します。
単一の選択ステートメントで私が求めていることは可能ですか?