2012-01-27 81 views
0

我有幾個類別中的一些圖像。所有類別都在某個表中(比如tbl_categories)。子類別的級別介於1和10之間。 我想創建一個查詢,該查詢從某個根類別(可以是子類別本身)提供所有子類別的子類別(及其子類別等)。sql選擇來自某個祖先的所有子孫(根類)

實施例:

Category 1 
    subcategory a 
Category 2 
    subcategory b 
     subsubcategory I 
     subsubcategory II 
    subcategory c 

如果我使用第2類,我要子類別b和c,以及subsubcategories我烯II作爲一個結果。 聽起來相當容易,但我沒有得到任何線索。

我是相當新的編寫查詢......

感謝

+2

你能告訴你的實際的表結構? – JNK 2012-01-27 14:29:49

+1

以及您正在使用哪種RDBMS(MySQL,PostgreSQL,Oracle等)? – 2012-01-27 14:39:41

+0

我有一個tbl_mm_cat,它有一個uid_local(指tbl_img中圖像的id)和一個uid_foreign(指tbl_cat中的類別的id)。 EUH我使用的是CMS和它在後臺一個phpMyAdmin的模塊...... 我成功地用它來檢測的圖象是類別2或4:\t \t \t \t \t \t $ SQL =請求mysql_query(」 SELECT uid_local FROM'tbl_mm_cat' WHERE uid_foreign IN(2,4)AND uid_local ='「。$ item-> getId()。」'「)或die(mysql_error()); getId()只是獲取每個圖像的每個ID (這是一個搜索模塊,用戶只能在特定類別中搜索) – GertBoers 2012-01-27 15:17:05

回答

0

試試這個:

//Parents 
$data = mysql_fetch_assoc(mysql_query("select id,name from categories where parent = 0")); 

//Childrens 
foreach($data as $key => $row) 
{ 
    $data[$key]['childrens'] = mysql_fetch_assoc(mysql_query("select id,name from categories where parent ='".mysql_real_escape_string($row['id'])."'")); 

    //childrens 
    foreach($data[$key]['childrens'] as $_key => $_row) 
    { 
     $data[$key]['childrens'][$_key]['childrens'] = mysql_fetch_assoc(mysql_query("select id,name from categories where parent ='".mysql_real_escape_string($_row['id'])."'")); 
    } 
} 

    //Print Array 
print_r($data); 
+0

thx,我會嘗試並讓你知道它是否工作... – GertBoers 2012-01-27 15:29:46

相關問題