2017-02-27 84 views
-2

我有一個3表結構的類別產品和catogory產品。類別表有3個lvl的cat/subcat/subbcat。按類別查詢數據庫產品

tbl_catalog_categories    tbl_products_to_categories 
`id_category` smallint(6)   `id_record` 
`id_parent` smallint(6)    `id_category` 
`name` varchar(128)     `id_product` 

tbl_products 
`id_product` 

所以我們可以說我有類別tbl_catalog_categories以下條目:

1 0 Books 
2 1 Action 
3 2 Cops 

和鏈接表tbl_products_to_categories

1 3 24 
1 3 25 

我想要的是,當我選擇的主要類別用於從子類別和子類別獲取所有產品的書籍。所以當我選擇書籍時,結果應該是產品ID 24和25。

以下是我tryed,這是工作的2拉特的,但我需要另外加入了第三個,我不能管理使其工作

$stmt=$this->db->prepare("Select p.name 
FROM tbl_products p 
INNER JOIN tbl_products_to_categories ptoc on ptoc.id_product=p.id_product 
INNER JOIN tbl_catalog_categories c1 on ptoc.id_category=c1.id_category 
INNER JOIN tbl_catalog_categories c2 on c1.id_parent=c2.id_category 

WHERE c2.name=:id and p.active=1 and p.quantity=1"); 
     $stmt->bindParam(":id",$id); 
     $stmt->execute(); 
     $result = $stmt->fetchAll(); 

     return $result; 
    } 
+1

你試過什麼? – RiggsFolly

+2

提示:'JOIN'(你需要兩次)。 –

回答