Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql]Wiele rekordów tabeli dla jednego rekordu innej tabeli...
Forum PHP.pl > Forum > Bazy danych > MySQL
my_key
Witam.

Posiadam trzy tabele:
  1. Tabela1 - obiekty:
  2. - id obiektu
  3. - nazwa obiektu
  4.  
  5. Tabela2 - kategorie:
  6. - id kategorii
  7. - nazwa kategorii
  8.  
  9. Tabela3 - ralcja:
  10. - id kategorii
  11. - id obiektu


Tabela pierwsza trzyma obiekty, tabela druga trzyma kategorie, tabela trzecia trzyma relacje pomiędzy tabelą 1 a tabelą 2.
Jest to relacja wiele do wielu.
Jedne obiekt może być przypisany do wielu kategorii i jedna kategoria posiada wiele obiektów.

Moje pytanie jest następujące:
jak pobrać za pomocą jednego zapytania listę obiektów tak aby w rezultacie otrzymać listę obiektów gdzie przy każdym obiekcie będą przypisane wszystkie nazwy kategorii do których obiekt jest przypisany.

Chodzi o taki wynik np.:
  1. [
  2. 0 - [id1, nazwa1, [kategoria1, kategoria2, kategoria3]]
  3. 1 - [id2, nazwa2, [kategoria1, kategoria3]]
  4. ]


Kategorie nie koniecznie muszą być w tabeli, ich nazwy mogą być jako ciąg znaków oddzielony zdefiniowanych separatorem.

Czy jest w ogóle możliwość osiągnięcia takiego wyniku za pomocą jednego zapytania?

Z góry dziękuję za pomoc.
phpion
GROUP_CONCAT
my_key
Dzięki za naprowadzenie, udało się.

A jeszcze mam pytanko...
Czy jest możliwość pobrania tych danych i umieszczenia ich w np tablicy lub obiekcie a nie ciągu?
phpion
Cytat(my_key @ 14.10.2009, 16:27:01 ) *
Czy jest możliwość pobrania tych danych i umieszczenia ich w np tablicy lub obiekcie a nie ciągu?

Możesz to zrobić już po stronie PHP. Najprościej będzie zrobić to poprzez explode.
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.