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).
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:
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.