2012-03-15 7 views
2

カテゴリを持つテーブルがあります。ここで、カテゴリには親(他のカテゴリの子)が入ります。親カテゴリーidの項目をフィルターに掛けるときは、すべての子カテゴリーを含めるようにします。mysqlクエリ。カテゴリツリー内のすべてのアイテムを選択してください

id || title  || parentid 
1 || Sports || 0 
2 || Tennis || 1 
3 || Wimbledon || 2 

は今、私は、カテゴリウィンブルドンの資料を持っている:

は、私がこのカテゴリ構造を持っているとしましょう。カテゴリスポーツにすべての記事を表示したい。

SELECT item.* FROM #table_items AS item WHERE item.catid = 1; 

上記のクエリは、ウィンブルドンカテゴリの記事を返しません。これは可能ですか?

+0

どこがur child btw ..ですか? – Teja

+0

Oracleでは、先に接続しましたが、MySQLがこれをサポートしているとは思わない –

答えて

0

私が探していた解決策が見つかりました。私はID 12のカテゴリにすべてのアイテムを表示したいと言うことができます:

SELECT item.* FROM #table_items AS item 
LEFT JOIN #__foc_shop_categories AS cat1 ON (cat1.id = item.catid) 
LEFT JOIN #__foc_shop_categories AS cat2 ON (cat1.parentid = cat2.id) 
... (and so on for more depth) 

WHERE (cat1.id = 12 OR cat2.id = 12 OR ...) 
GROUP BY item.id 

これは、カテゴリ内のすべての項目とネストされたカテゴリの結果です。

0
SELECT item.* FROM #table_items AS item,#categories as catg 
WHERE item.parentid = cat.parentid; 
+0

動作しません...項目表には、カテゴリを参照するフィールド 'catid'があります。 – Bert

+0

は、両方のテーブルのいくつかのサンプルデータを投稿することができます... – Teja

+0

テーブル項目には項目IDがあります。タイトル|| catid、ここでcatidはカテゴリテーブルのidフィールドにリンクします。 – Bert

関連する問題