Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Zapytanie] Problem z napisaniem zapytania SQL
Forum PHP.pl > Forum > Bazy danych > MySQL
eai
group_main
Kod
group_id | group_name


group_users
Kod
id | user_id | group_id


Iteraz chce wyświetlić w ten sposób że...

Najpierw pobiera grupe, a potem z group_users pobiera mi userow ktorzy naleza do tej grupy.

Powinno to wygladac tak:
Kod
[0]   => array
                       [group_id] = 1
                       [group_name] = 'grupa 1'
                       [users] => array
                                               [0] => array
                                                                   [id] = 1
                                                                   [user_id] = 23
                                               [1] => array
                                                                   [id] = 5
                                                                   [user_id] = 55
[1]   => array
                       [group_id] = 2
                       [group_name] = 'grupa 2'
                       [users] => array
                                               [0] => array
                                                                   [id] = 2
                                                                   [user_id] = 13
                                               [1] => array
                                                                   [id] = 4
                                                                   [user_id] = 25


itd.....
Da sie utworzyc taka tablice po stronie SQL questionmark.gif
Wiem ze moge zrobic dwa zapytania, najpierw pobierac grupy potem petla i kolejne zapytanie pobierajace userow wedlug group_id ale wolalbym za pomoca jednego zapytania.

Pomocy....
batman
Możesz zrobić to zapytaniem, ktróre posortuje Ci po group_id z group_main, a następnie w php utworzysz sobie potrzebną tablicę.

Zapytanie będzie mnięj więcej tak (pisane z palca - nie testowałem)

  1. SELECT
  2. g1.group_id,
  3. g1.group_name,
  4. (SELECT id FROM group_users WHERE group_id = g1.group_id) AS id,
  5. (SELECT user_id FROM group_users WHERE group_id = g1.group_id) AS user_id
  6. FROM group_main g1
  7. ORDER BY g1.group_id


W postgresie możesz zwrócić tablicę (nie asocjacyjną) lub typ, który tą tablicę może udawać. W mysql niestety nie wiem, czy się da zrobić takie coś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.