Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Wiele rekordow do jednego w JOIN - GROUP_CONCAT
Forum PHP.pl > Forum > Przedszkole
Octobus
Pobieram rekordy z tabeli ktorej sa informacje o produktach i potrzebuje do kazdego z nich dodac informacje do jakich sklepow naleza. Musze to zrobic pobierajac rekordy z tabeli `catalog_product_website` w ktorej do jednego produktu jest tyle wpisow do ilu sklepow nalezy. Pogladowo tabela website wyglada tak:
Cytat
product_id | website_id
1476 | 1
1476 | 2
1476 | 3
1476 | 4
1476 | 5
1476 | 6
1476 | 7
1476 | 8
1476 | 9


chce zeby przykladowy produkt mial wartosc np. [websites] = 1,2,3,4,5,6,7,8,9. Probowalem skorzystac z GROUP_CONCAT ale wynikiem zamiast listy produktow z lista sklepow do jakich nalezy jest jeden produkt w ktorym sa `website_id`z wszystkie produktow


  1. SELECT
  2. `catalog_product_entity`.*,
  3.  
  4. GROUP_CONCAT(`website`.`website_id`) AS `websites`
  5. FROM
  6. `catalog_product_entity`
  7.  
  8. /* website */
  9. LEFT OUTER JOIN `catalog_product_website` AS `website`
  10. ON (`catalog_product_entity`.`entity_id` = `website`.`product_id`)


trueblue
Funkcja GROUP_CONCAT jest funkcją agregującą, musisz więc pogrupować (użyć GROUP BY) po polu w obrębie, którego funkcja ma działać.
W Twoim przypadku, po product_id.
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.