Kod
1;f
1;t
2;t
2;f
3;f
3;f
1;t
2;t
2;f
3;f
3;f
Chciałbym teraz tak przekształcić ten zbiór żeby mieć po pierwszym rekordzie dla każdego ID czyli finalnie chcę uzyskać to:
Kod
1;f
2;t
3;f
2;t
3;f
Nie bardzo wiem jak to uzyskać.
Generalnie mam funkcję, która zwraca taki zbiór uprawnień do zasobów po drodze wykonując takie zapytanie:
* Problem rozwiązany:
http://stackoverflow.com/questions/821811/...he-first-record
SELECT -- resource_id, permission -- Źle... DISTINCT ON (resource_id) resource_id, permission -- To jest OK! FROM ( -- Pobranie uprawnien przypisanych bezposrednio do uzytkownika (2 jako wyzszy priorytet) SELECT acl_resource_id AS resource_id, permission AS permission, 2 AS priority FROM acl_resources_users WHERE user_id=1 UNION -- Pobranie uprawnien przypisanych do rol uzytkownika (1 jako nizszy priorytet) SELECT b.acl_resource_id AS resource_id, permission AS permission, 1 AS priority FROM acl_roles_users AS a JOIN acl_resources_acl_roles b USING (acl_role_id) WHERE a.user_id=1 ) AS t GROUP BY resource_id, permission, priority ORDER BY resource_id ASC, priority DESC
Proszę o pomoc,
pion