Re: [SQL ] 請問如何找出母節點

看板Database (資料庫)作者 (多想兩分鐘 = =")時間17年前 (2007/05/25 22:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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: 61.229.207.152 ※ 編輯: grence 來自: 61.229.207.152 (05/25 22:10)
文章代碼(AID): #16LkthV6 (Database)
文章代碼(AID): #16LkthV6 (Database)