1
我有2個表SQL檢索樹結構查詢
Products
表:
ID ProductName Category
0 T-Shirt 15
1 Aqua De Gio 12
2 Jacket 15
3 Hot Water 13
Categories
表:
categoryID catagoryName highercategoryID
8 Fragnance 0
99 Clothing 0
15 Armani Clothing 99
12 Armani Fragnance 8
102 Davidoff Fragnance 8
預期結果
ID ProductName Category CategoryTree
0 T-Shirt 15 Clothing > Armani Cloting
1 Aqua De Gio 12 Fragnance > Armani Fragnance
2 Jacket 15 Clothing > Armani Cloting
3 Hot Water 13 Fragnance > Davidoff Fragnance
例如走T-S希爾特從產品表
- 其類別爲15
- 去類別表,看看那裏的categoryID = 15
- 看看highercategoryID如果= 0停止,如果不是再取它的值99
- 在categoryID列中尋找99,現在較高的類別是0,所以停下來。 根據以上我需要得到「服裝>阿瑪尼服裝」。
我是新來的SQL查詢,這裏是我的第一次嘗試
select
x.*,
x.p1 + isnull((' > ' + x.c1), '') + isnull((' > ' + x.c2), '') as CategoryTree
from
(select
RP.categoryid as catid,
RP.catagoryName as p1,
R1.catagoryName as c1,
R2.catagoryName as c2
from
categories as RP
left outer join
categories as R1 on R1.highercategoryid = RP.categoryid
left outer join
categories as R2 on R2.highercategoryid = R1.categoryid
left outer join
categories as R3 on R3.highercategoryid = R2.categoryid
where
RP.highercategoryid != 0) x
我不知道如何停止的加盟時,我發現在更高等級的0值,以及如何加入產品在他們的類別中,並且有沒有使用大量聯接的動態方式?
+10是不夠的,謝謝。 – user2490355