Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączeni tabeli w ciąg
Forum PHP.pl > Forum > Bazy danych > MySQL
astropanic
Witam, mam troche nietypowy problem.

-----------------
Tabela "produkt"
id,name
-----------------
Zawiera dane o produkcie

-----------------
Tabela "package"
id, innebzdety
-----------------
Zawiera dane o pakiecie, opis, cena itd

-----------------
Tabela "productpackage"
id, packageid, productid
-----------------
tabela laczaca pakiety z produktami(aby do jednego pakietu mozna bylo dolaczyc kilka produktow)

wyswietlajac paczke potrzebuje wyswietlic wszystkie nazwy produktow znjdujacych sie w tej paczce.

Czyli jesli w produktach mam "trąbkę","akordeon" i "organiki" i przypisalem je do pakietu o id 5 to po wykonaniu zapytania powinienem otrzymac coś takiego:

5,"trabka akordeon organki"

Ma ktos jakies pomysly ? A moze mieliscie juz podobny problem ?

Pozdrawiam
prond
Dla Twoich potrzeb na pewno będzie pomocna funkcja agregująca GROUP_CONCAT (http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat)

Pewnie będzie to wyglądało mniej więcej tak:
  1. SELECT
  2. product.id,
  3. GROUP_CONCAT(package.name SEPARATOR ', ')
  4. FROM product LEFT JOIN product_package ON (product_package.product_id = product.id)
  5. LEFT JOIN package ON (product_package.package_id = package.id)
  6. GROUP BY
  7. product.id;
astropanic
Dziekuje, wlasnie o cos takiego mi chodzilo. Nawet nie widzialem ze jest takie rozszerzenie SQL. Fajna rzecz smile.gif

Pozdrawiam
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.