我有两个表:接收产品类别和产品与一个查询
Product
------------------------------------
id group_id name quick_select
------------------------------------
1 1 product1 1
2 3 product2 0
3 5 product3 1
Product_group
-----------------------
id name parent_id
-----------------------
1 group1 0
2 group2 0
3 group3 1
4 group4 1
5 group5 3
我做快速选择产品的导航系统。我向用户和用户显示的类别可以通过点击类别按钮在其中导航,然后逐级下降到子类别,并下降到最终不能更深入的级别,然后显示产品。首先,我会展示根类别,其中包含产品的根类别以及这些根类别的子类别,子类别等。
在我的查询中,我希望选择所有根目录类别(其中parent_id = 0),如果其中包含产品及其子类别和子子目录等等,其中产品表中的quick_select必须为1。我不知道类别的深度 - 有多少层次。
一个查询可能吗?或者我需要做两个查询?
我做了,到目前为止,该查询:
SELECT pg.id, pg.name, pg.parent_id AS parent_id
FROM product_group AS pg
LEFT JOIN product AS p ON pg.id = p.group_id
WHERE pg.parent_id = 0 AND p.id IS NOT NULL AND p.quick_select = 1
GROUP BY pg.id
但我没有收到根类,其子类是空的,其子类是空的,这下多一个子类别的产品与quick_select = 1 。
对不起,我的英语不好。
我想收到的所有类别,其中产品quick_select = 1时,而不是产品
-- Category
| |
| product
|
-- Category
|
Category
|
Category
|
multiple products
哪个RDBMS? SQL服务器,甲骨文,MySQL,... – 2011-01-11 10:38:17
我不太清楚你想要什么 - 你可以发布输出应该看起来像这个例子? – Martin 2011-01-11 10:39:05