按类别查询数据库产品

时间:2017-02-27 13:33:03

标签: mysql sql

我有一个3表结构的类别产品和catogory产品。类别表有3个lvl' s 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。

这是我尝试过的,它为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 个答案:

答案 0 :(得分:-1)

只需将您的链接表转换为分层表示 比如这样:

http://moinne.com/blog/ronald/mysql/manage-hierarchical-data-with-mysql-stored-procedures