0

ここで私はクエリで立ち往生しています

このテーブル PRODUCT には、製品 ID 、タイトル、サブカテゴリ ID、およびカテゴリ ID でリストされた製品があります。私がprocat idとparent id、procat titleを持っている別のテーブル(procat)があります。したがって、基本的に、親 ID を持つ ID はサブカテゴリです。0 の場合、そのカテゴリは私のロジックです

基本的に私がやりたいことは、製品のタイトル、カテゴリのタイトル、サブカテゴリのタイトルを取得することですが、カテゴリを取得することはできますが、サブカテゴリも取得するにはどうすればよいですか

SELECT
product.id,
product.title AS product_title,
procat.title  AS category_title  
FROM product,
procat 
WHERE product.procatid = procat.id
OR  product.procatsubid = procat.id
AND product.procatid = '31'
AND product.procatsubid = '21'

私も左結合を試みましたが、役に立ちませんでした

4

1 に答える 1

0

編集- 明確にしていただきありがとうございます。カテゴリへの製品外部キーに冗長性があるようです (つまり、製品は procat SubCategory によって分類され、親カテゴリ ID は procat.parent をナビゲートすることによって (おそらく再帰的に) 到達する必要があります)。

SELECT
  product.id,
  product.title AS product_title,
  cat.title  AS category_title,
  subcat.title AS subcategory_title  
FROM product 
   INNER JOIN procat cat on product.procatid = cat.id
   INNER JOIN procat subcat on product.procatsubid = subcat.id
  procat
WHERE product.procatid = '31'
      AND product.procatsubid = '21'
      -- The below should be redundant, but I guess you can use them to ensure that the product FKs are correct and the table integrity is maintained
      AND cat.parentid = 0
      AND subcat.parentid <> 0
于 2012-05-01T07:53:49.600 に答える