Re: [SQL ] 請問如何找出母節點
※ 引述《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)
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章