Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Wiele rekordow do jednego w JOIN - GROUP_CONCAT
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


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`)


Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 11:20