Elimde bir hiyerarşi tablosu (Kullanıcı yetkileri ve onların altında çalışanların yetkilerini tutan bir tablo), o sql senin, bu sql benim query yazıyorum. Koca bir gün uğraşlardan sonra yüzüm güldü. Çoğu sitelerde buna kategori ya da menü mantığı deniyor. Menü ve o menüye bağlı alt menüler.
Diyelim ki elimizdeki menü tablosunda şöyle kayıtlar var.
MenuID ParentMenuId
1 NULL
2 1
3 2
4 3
5 4
ve en üstteki menüden en alttaki menüye kadar gitmek istiyoruz.
Sorgu aha da budur!
WITH RESULT(ID) AS
(
SELECT
MENUID FROM MENU WHERE
MENUID = 2
UNION ALL
SELECT M.MENUID FROM MENU
M
INNER
JOIN RESULT R ON M.parentmenuId= R.ID
)
SELECT * FROM RESULT
alttaki menülerden üstteki menülere gitmek istiyoruz.
Diğer sorgu aha da budur!
WITH RESULT(ID) AS
(
SELECT
PARENTMENUID FROM MENU WHERE
MENUID = 4
UNION ALL
SELECT M.PARENTMENUID FROM
MENU M
INNER
JOIN RESULT R ON
M.MENUID= R.ID
)
SELECT * FROM RESULT
Oh bee...