webForumDet fria alternativet

Start With & Connect By i SQL

Databaser & SQL

4 svar · 306 visningar · startad av Bjuris

Medlem sedan juli 2001514 inlägg
Frågan#1

Jag har en tabell i sql enl följande:
UserAccess
UserID | Accessvalue | groupID | StudentID
och
UserGroups
GroupId| Accessvalue | groupID | StudentID

Accessvalue = G/S (grupp/Student)

Detta skall förklaras vad användaren har rätt att se
Man kan gruppera studenter i grupper samtidigt så kan man gruppera grupper i grupper

Ex:
Grupp Alla innehåller två grupper ex: ÅK1 & ÅK2, och sedan så innehåller ÅK1 ex Kalle & Eva.

Hur skall man göra för att få ut alla Studenter när man skickar in ett userID

I oracle så finns det START WITH & CONNECT BY, men hur fungerar det i SQL server?

Medlem sedan dec. 200012 464 inlägg
#2

Titta på common table expressions (kräver 2005)

Medlem sedan juli 2001514 inlägg
#3

om man nu inte har 2005...

Medlem sedan dec. 200012 464 inlägg
#4

Om du har ett godtyckligt djup så får du använda rekursion.

Medlem sedan juli 2001514 inlägg
#5

Det är just det, godtyckligt...
Samtidigt så vill jag ju inte begränsa mig, utan en användare skall kunna skapa hur många grupper och undergrupper andvändaren behöver.
Det kommer ju aldrig att bli över 20, så visst kan man sätta en maxgräns i rekursionen men det är ju inte lika smutt.

521 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
385 ms — ändringar (db)