2011-10-06 68 views
0

我有一個相當複雜的數據庫問題,所以我會嘗試解釋儘可能詳細。MySQL循環查詢/深入挖掘

我有一個名爲TypeAttributes的表。

TYPEID,屬性Id,valueINT

從該表我希望提取特定類型的一組6屬性ID的。

所以,我想從一個查詢搜索TYPEID這樣的事情結束了,在下面的情況下TYPEID = 11446

typeID, attributeID, valueINT 
11446 182   3000  
11446 183   3001  
11446 184   3002  
11446 277   5   
11446 278   2   
11446 279   2   

從這個信息,我想,然後再次運行上面的查詢,但使用attributeID的182,183和184的valueINT作爲要查詢的typeID。所以,後來我應該結束了一個表是這樣的:

typeID, attributeID, valueINT 
11446 182   3000  
11446 183   3001  
11446 184   3002  
11446 277   5   
11446 278   2   
11446 279   2   
3000 182   1000  
3000 183   1001 
3000 277   5 
3000 278   5 
3001 182   51951 
3001 277   3 
3002 182   1000 
3002 277   2 

最後,就是我希望擁有的所有先決條件TYPEID年代,182個屬性值(這實際上是一個類型的屬性即時興趣感興趣),旁邊副屬性(277)。

從這個數據我應該能夠建立一個簡單的信息從一個項目類型的層次結構。 IE瀏覽器。我選擇物品類型11446,並且它一直持續到樹上,直到沒有必要條件。

這完全可以在SQL中完成輸出這樣的表嗎?

我希望這對某人有意義。

親切的問候

PS。

作爲一個附註,屬性ID綁定到另一個表,它告訴我哪種類型的屬性im查看和值是該屬性的值,在這種情況下,valueINT實際上是另一個typeID我希望通過查找完全相同的過程。

182,183和184是某些類型,277,278和279以及這些類型的乘數。

回答

0

您想考慮使用名爲modified preorder traversal的方法來存儲樹結構化數據 - 此方法可讓您輕鬆找到給定節點的子節點在單個查詢中的任意深度的所有節點。

看起來你有幾棵樹,每棵樹都由一個特定的屬性定義。這些屬性中的每一個都將被一對值替換,以存儲左側和右側節點標識符。