Re: [SQL ] 請問如何找出母節點
既然是用 MS SQL 2005, 可以試試看新的 recursive query 的語法
http://technet.microsoft.com/en-us/library/ms186243.aspx
※ 引述《grence (多想兩分鐘 = =")》之銘言:
: ※ 引述《rosemary (迷迭香)》之銘言:
: : 我有一個資料表叫做products如下
: : 是為了展現樹狀結構,樹的層級是動態的,不一定有幾層。
: : 請問要怎麼下SQL語法,給定nodID,找出所有的母節點monID
: : 例如;給nodID=12 (2B鉛筆),
: : 要怎麼找出 (1)文具-(4)鉛筆-(12)2B鉛筆呢?
: : (從後面 12-4-1找也可以 ^^)
: : 要用遞迴嗎?那這個例子SQL的遞迴語法怎麼寫呢?
: : 我是用MS SQL 2005的....謝謝大家 ^^
: M$ SQL 應該可以這樣硬來
: -----
: declare @monid int,@result varchar(100),@inputid int
: select @monid=monid, @inputid=12 from products where nodid=12
: while(@monid!=-1)
: begin
: select @result=@result+@inputid+'-'
: select @monid=monid from products where nodid=monid
: end
: select @result -- 應該是'12-4-1-' XD
: -----
: 其實就只是硬兜答案而已:拿 nodID 查 monID,monID!=-1 記下來並繼續查
: 我想問題在於不會寫 M$ SQL的迴圈吧,應該
: 不過, SQL好像是集合概念的語言,用一般程式邏輯思考執行的效率會比較糟糕
: 但…先求有解再求最佳解吧XD
: : products
: : ========================
: : nodID monID nodName
: : 0 -1 產品
: : 1 0 文具
: : 2 0 食物
: : 3 0 飾品
: : 4 1 鉛筆
: : 5 1 筆記本
: : 6 2 餅乾
: : 7 2 水果
: : 8 3 髮圈
: : 9 3 耳環
: : 10 3 太陽眼鏡
: : 11 4 自動鉛筆
: : 12 4 2B鉛筆
: : 產品-文具-鉛筆 -自動鉛筆...
: : -2B鉛筆
: : -筆記本
: : 食物-餅乾
: : -水果
: : 飾品-髮圈
: : -耳環
: : -太陽眼鏡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 67.161.17.127
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章