簡體   English   中英

如何按頂級父類別獲取所有項目?

[英]How to get all items by top parent category?

我有2個表: shop_productsshop_category
shop_products: ID,名稱,類別ID
shop_category: ID,名稱,parent_id,有效。 Active可以是“ true”或“ false”。 類別的嵌套方式類似於parent> subcat> subsubcat> ...
怎樣才能使所有父類別處於“ true”狀態的產品成為可能?
我嘗試使用JOIN。 但是它僅采用最接近的類別,而不采用樹的頂級類別。

SELECT * FROM shop_products 
INNER JOIN shop_category as sc1 ON (shop_products.category_id=sc1.id)
INNER JOIN shop_category as sc2 ON (sc1.parent_id=sc2.id)
WHERE sc2.active=1

UPD:這是sqlfiddle

我希望什么也不會得到。 因為頂級類別“ Cat1”具有活動的false

使用以下查詢:

SELECT s.* FROM shop_products as s WHERE EXISTS (
  SELECT id FROM shop_category as sc WHERE sc.id = s.category_id AND EXISTS(
  SELECT id FROM shop_category as sc1 WHERE sc.id = sc1.id AND sc1.active = 1

  )
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM