Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z grupowaniem rekordów, Chcę otrzymać tylko po pierwszym rekordzie dla danego ID
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Witam,
mam pewien problem* z PostgreSQL. W wyniku zapytania otrzymuję:
Kod
1;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

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
  1. SELECT
  2. -- resource_id, permission -- Źle...
  3. DISTINCT ON (resource_id) resource_id, permission -- To jest OK!
  4. FROM
  5. (
  6. -- Pobranie uprawnien przypisanych bezposrednio do uzytkownika (2 jako wyzszy priorytet)
  7. SELECT
  8. acl_resource_id AS resource_id, permission AS permission, 2 AS priority
  9. FROM
  10. acl_resources_users
  11. WHERE
  12. user_id=1
  13. UNION
  14. -- Pobranie uprawnien przypisanych do rol uzytkownika (1 jako nizszy priorytet)
  15. SELECT
  16. b.acl_resource_id AS resource_id, permission AS permission, 1 AS priority
  17. FROM
  18. acl_roles_users AS a
  19. JOIN acl_resources_acl_roles b USING (acl_role_id)
  20. WHERE
  21. a.user_id=1
  22. ) AS t
  23. GROUP BY
  24. resource_id, permission, priority
  25. ORDER BY
  26. resource_id ASC, priority DESC

Proszę o pomoc,
pion

Ten post edytował phpion 28.08.2009, 07:40:27
Go to the top of the page
+Quote Post

Posty w temacie
- phpion   Problem z grupowaniem rekordów   28.08.2009, 07:27:55


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:57