2

サブカテゴリのparent_idと製品テーブルを持つカテゴリテーブルから単一のクエリを使用して、すべてのカテゴリとサブカテゴリを取得しようとしています。しかし、私は正確な結果を得ていません。どこが間違っているのかわかりません。

私のクエリは、次の 5 つのテーブルを使用します。

  1. 製品- このテーブルにはproducts_idフィールドとその他の詳細があります
  2. products_description - このテーブルにはproducts_nameおよびproducts_idフィールドが含まれます
  3. products_to_categories - このテーブルには、categories_idフィールドにリンクされた products_id が含まれています
  4. カテゴリ- このテーブルには、categories_idおよびその他のフィールドとparent_idフィールドが含まれています
  5. category_description - このテーブルにはフィールドが含まれcategories_idますcategories_name

これが私のクエリです:

SELECT  p.products_id, pd.products_name, cd.categories_id AS main_category_id, cd.categories_name ,c.categories_id AS subcategory
 FROM products p
 INNER JOIN products_description pd ON pd.products_id=p.products_id 
 INNER JOIN products_to_categories p2c ON p2c.products_id=p.products_id 
 INNER JOIN categories c ON p2c.categories_id=c.categories_id 
 INNER JOIN categories_description cd ON cd.categories_id=c.categories_id 
 GROUP BY cd.categories_id
4

1 に答える 1

0

あなたが間違っているのは、cd.categories_id=c.categories_id を書いた句条件での最後の内部結合だと思います。

この cd.categories_id=c.parent_id に変更する必要があります

したがって、最終的なクエリは次のようになります。

SELECT  p.products_id, pd.products_name, cd.categories_id AS main_category_id, cd.categories_name ,c.categories_id AS subcategory
 FROM products p
 INNER JOIN products_description pd ON pd.products_id=p.products_id 
 INNER JOIN products_to_categories p2c ON p2c.products_id=p.products_id 
 INNER JOIN categories c ON p2c.categories_id=c.categories_id 
 INNER JOIN categories_description cd ON cd.categories_id=c.parent_id
 GROUP BY cd.categories_id
于 2013-09-10T11:33:25.093 に答える