|
|
Kod tarafında döngü ile yapıyorum ancak bu performans sıkıntısı yaratmakta.
t-sql tarafında nasıl bir sorgu yazmak lazım ki en son kıvrımda olan kategori_id numarasını verince adım adım en tepesinde olan kategori adini versin bize?
id adi ust_id
1 bilgisayar 0
2 araba 0
3 BMW 2
4 3.1 3
5 3.1 yeniKasa 4
5 numaralı id'yi prosedure vereceğiz o da bize en üst kıvrıma kadar gidecek işte..
Pls Help Me!
Tarayıcı dayanışması istiyoruz.. Bitsin bu savaş yıllarca kaç webmasterın canını aldınız yetmedi mi?
|
omerelili

Kayıt : 8 Temmuz 2007 Azerbaycan / Bakü
|
|
id=5 çağırdığında ne olmasını istiyorsun? anlamadım hocam
VEREM olsaydında VEREN olmasaydın.
|
TeRRoR

Kayıt : 6 Nisan 2007 Ankara
|
|
cemnet bunu yazdı: -----------------------------
Kod tarafında döngü ile yapıyorum ancak bu performans sıkıntısı yaratmakta.
t-sql tarafında nasıl bir sorgu yazmak lazım ki en son kıvrımda olan kategori_id numarasını verince adım adım en tepesinde olan kategori adini versin bize?
id adi ust_id
1 bilgisayar 0
2 araba 0
3 BMW 2
4 3.1 3
5 3.1 yeniKasa 4
5 numaralı id'yi prosedure vereceğiz o da bize en üst kıvrıma kadar gidecek işte..
Pls Help Me!
-----------------------------
Döngü yerine recursive method ile belki daha hızlı yapabilirsin ancak her halükarda ParetnID'ye göre ChildNode'ları select etmen gerekecek.
en iyi ölüm kendi karar verdiğin ölümdür
|
Cosmic (Harlem)

Kayıt : 14 Haziran 2006
|
|
şuan ki haliyle tek sorguda istediğini yapabilmen mümkün değil gibi. derinlik diye bi alanın daha olsaydı onun sayısı kadar tabloyu join edip çıkartabilirdin istediğin sonucu
Bu profil 05-10-2011 tarihinden itibaren 609 tekil hit ve 1437 normal hit almistir.
|
|
|
Alttaki t-sql ile sorun çözüldü
Çözüm: Common Table Expressions (CTE), Recursive
WITH Kat
(KategoriID, KategoriAdi, UstKatID, HierarchyLevel) AS
(
-- Base Method
SELECT
KategoriID,
KategoriAdi,
UstKatID,
1 as HierarchyLevel
FROM Kategori
WHERE KategoriID=31
UNION ALL
SELECT
k.KategoriID,
k.KategoriAdi,
k.UstKatID,
k2.HierarchyLevel + 1 AS HierarchyLevel
FROM Kategori k
INNER JOIN Kat k2 ON
k2.UstKatID = k.KategoriID
)
SELECT *
FROM Kat
ORDER BY HierarchyLevel desc
Tarayıcı dayanışması istiyoruz.. Bitsin bu savaş yıllarca kaç webmasterın canını aldınız yetmedi mi?
|
|