簡體   English   中英

從產品類別及其所有子類別中獲取產品

[英]Fetch Products from a product category and all its sub-categories

我正在建立一個電子商務網站,但遇到了一些問題

問題

我有一個名為飲料的類別,而在此類別下,我有兩個子類別,分別是威士忌和非酒精飲料。 在非酒精飲料下,我們將威士忌和非酒精飲料的果汁和葡萄酒飲料歸為父類別,而非酒精飲料為果汁和葡萄酒的父類別。 問題是,當用戶單擊飲料時,我希望他們能夠查看威士忌類和非酒精類的子類中的所有商品,但是我查詢要獲取該類中的產品並將它們組合在一起的查詢卻沒有相反,它只獲得父類飲料的產品,而沒有產品

public function select_from_product_page_all($cat,$level){

$que = $this->query("SELECT a.product_category_id,a.quantity, a.product_id, a.description, a.product_name, a.image, a.price, Deriv1.Count FROM `product` a  LEFT OUTER JOIN (SELECT parent, COUNT(*) AS Count FROM `product_category` GROUP BY parent) Deriv1 ON a.product_category_id = Deriv1.parent WHERE a.product_category_id=" . $cat);
return $que;
}

數據庫結構

產品表列是

產品名稱,數量,價格,圖像,描述,產品類別ID

產品類別表列為

product_category_id,名稱,父母

將產品與類別關聯的是product_category_id,將product_category與父類別關聯的是父列,在父列中保存的是父項的product_category_id。

我可以通過以下查詢解決它

 public function select_from_product_page_all($cat,$level){
$que = $this->query("SELECT  p.product_category_id,p.quantity, p.product_id, p.description, p.product_name, p.image, p.price FROM product p
WHERE p.product_category_id IN (
 SELECT c.product_category_id
 FROM product_category c
WHERE c.product_category_id = " . $cat . "
UNION ALL
SELECT c2.product_category_id
FROM product_category c
  LEFT JOIN product_category c2 ON c.product_category_id = c2.parent
WHERE c.product_category_id = " . $cat . "
UNION ALL
SELECT c3.product_category_id
FROM product_category c
  LEFT JOIN product_category c2 ON c.product_category_id = c2.parent
  LEFT JOIN product_category c3 ON c2.product_category_id = c3.parent
WHERE c.product_category_id = " . $cat . "
UNION ALL
SELECT c4.product_category_id
FROM product_category c
  LEFT JOIN product_category c2 ON c.product_category_id = c2.parent
  LEFT JOIN product_category c3 ON c2.product_category_id = c3.parent
  LEFT JOIN product_category c4 ON c3.product_category_id = c4.parent
WHERE c.product_category_id = " . $cat . "
)
GROUP BY p.product_id");
return $que;
}

暫無
暫無

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

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