0

次のSQLコードは正しく機能していますが、カテゴリを選択/フィルタリングできません。すべてのカテゴリを表示します。

例として、

Cars (20) (root)
---> Blue cars (12)
----------> Ford (2)
----------> Bmw (9)
----------> Dodge (1)
---> Red cars (9)
----------> Xxxx (9)
---> Black cars (1)
----------> Yy (1)

青い車のカテゴリのみを選択するにはどうすればよいですか。(サブノード付き)

これを行うためにSQLコードを変更するにはどうすればよいですか?

結果は次のようになりたいです。(青い車のカテゴリーを選択した場合)

---> blue cars (12)
----------> ford (2)
----------> bmw (9)
----------> dodge (1)

これはSQLコードです...

SELECT 
parent.cid,
parent.title,
(SELECT COUNT(parent2.cid) FROM categories AS parent2 WHERE parent.lft > parent2.lft AND parent.rgt < parent2.rgt) AS depth,
COUNT(products.cat_id) AS total

FROM categories AS node,
categories AS parent,
products

WHERE 

node.lft BETWEEN parent.lft AND parent.rgt 

AND node.cid = products.cat_id

GROUP BY parent.cid having depth <= 5
ORDER BY parent.lft
4

1 に答える 1

0

あなたはこれを考えすぎていると思います-サブツリーを取得することは、ネストされたセットの単純な操作に関するものです

SELECT *
FROM categories
WHERE lft BETWEEN bluecarleftvalue AND bluecarrightvalue
ORDER BY lft ASC
于 2013-02-15T01:45:54.390 に答える