Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Pogrupowanie wyników wyświetlania
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć,

Mam 3 tabele:

PRODUCT:
id | name | sku | type | price

PROPERTY:
id | property | type

PRODUCT_PROPERTY:
id | product_id | property_id | value


Tabela PRODUCT_PROPERTY łączy w sobie 2 pozostałe i dodaje value. W skrócie - w tabeli produkt sa produkty (Rambo, Krzyżacy, Stół), natomiast w PROPERTY są wypisane możliwe właściwości (rozmiar w MB dla dvd, ilość stron dla książek, wysokość i szerokośc i długość dla mebli). Tabela łącznikowa łączy dany produkt z daną właściwością i nadaje WARTOŚĆ danej właściwości dla danego produktu. Tak więc w tabeli łącznikowej dla danego dvd (Rambo) i książki (Krzyżacy) występuje po 1 wpisie, bo mają po jednej właściwości (MB, ilość storn). Natomiast dla mebli są to 3 wpisy per mebel (stół), bo mebel ma wysokość, szerokość i długość.
Chcę to ładnie wyświetlić, ale męczę się z pogrupowaniem.

To zapytanie działa, lecz oczywiście wyświetla mi tyle wpsiów ile jest w PRODUCT_PROPERTY, więc 5 (1 dla Rambo, 1 dla Krzyżaków i 3 dla stołu).
  1. SELECT product.sku, product.name, product.price, property.type, property.property, product_property.value FROM product_property INNER JOIN property ON product_property.property_id = property.id INNER JOIN product ON product_property.product_id = product.id


Kombinuję z grupowaniem po wartościach z produktu, np SKU albo NAME, ale bez rezultatów:
  1. SELECT product_property.value FROM product_property INNER JOIN property ON product_property.property_id = property.id INNER JOIN (SELECT product.sku, product.name, product.price, property.type, property.property FROM product, property GROUP BY product.sku) ON product_property.product_id = product.id;


Pomóżcie.
Dzięki

PS. Konstrukcję tej bazy pomógł mi wymyślec nospor w TYM WĄTKU.
nospor
W poprzednim temacie pokazalem ci jak to zrobic. Czemu nagle chesz inaczej?
A nawet jesli chcesz zrobic to na bazie, to w linku do ktorego cie odeslalem tez jest pokazane jak sie robi grupowanie na bazie i znowu ignorujesz. Chyba nie widze sensu pisania juz wiecej w twoich tematach, patrzac z grubsza wiekszosc rzeczy ignorujesz.
sadistic_son
To jest inny temat, inne zapytanie na innej podstronie. To o czym piszesz, gdzie pogrupować sobie dane w tablicy przy pomocy pętli to mam do wyświetlania samych właściwości przy dodawaniu nowego produktu i tam są 2 tabele, bez łącznikowej. I to jest dla mnie zrozumiałem i to skończę. Ale tutaj jest inna sytuacja moim zdaniem bo są 3 tabele to bez JOINa chyba nie da się tego załatwić. Czy nie.... ?
nospor
Chcesz wyswietlic produkty z wlasciwosciami a wlasciwosci moze byc wiele wiec ci duplikuje produkty.Generalnie to jest to samo co w poprzednim temacie.
sadistic_son
No dobra. To zabiorę się najpierw za pogrupowanie z poprzedniego postu, to może rozświetli mi i to rozwiązanie.

EDIT: Ogarnąłem z nospora samouczkiem - Przykład 1.
Dzięki nospor smile.gif
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.