Sql query

Tags:    databaser

Hej

Jeg har følgende tabeller.
En bruger tabel med en mange-til-mange relation til en rolle tabel. Denne rolle tabel er relateret til en RolleRolleMedlemAf tabel der igen er relateret tilbage igen.

Det er en udvidelse af et eksisterende bruger/rolle db hvor vi har brug for at en rolle kan være medlem af en rolle og i dette setup dog kun op til et niveau

Er der nogen der kan skrive en Sql der kan trække de brugere ud der er i en given rolle og såfremt denne rolle har roller under sig også de brugere af disse roller?

Altså noget i stil med

SELECT * FROM Users
INNER JOIN UsersInRoles
On UsersInRoles.UserId = Users.UserId
INNER JOIN Roles
ON Roles.RoleId = UsersInRoles.RoleId
........
WHERE Roles.RoleName = 'xxxx'

Hvor det der mangler er i stil med

SELECT * FROM Roles
INNER JOIN RoleMemberOfRole
ON Roles.RoleId = RoleMemberOfRole.MemberOfRoleID
UNION
SELECT * FROM Roles
INNER JOIN RoleMemberOfRole
ON Roles.RoleId = RoleMemberOfRole.RoleId



Indlæg senest redigeret d. 03.06.2008 17:05 af Bruger #5011
2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det ville være en del lettere hvis du lagde udskrev tabbelerne, så vi kunne se felter osv.



Jeg fandt en måde er gøre det på. Sql server 2008 understøtter en ny hieraki datatype der kan bruges til at repræsentere en træstruktur og tilhørende user defined functions til at søge i træet og det gjorde det for mig :-)



t