May 14, 2009
@ 01:06 AM
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...






 
Categories: SQL