Witam!
Plus minus mam taką strukturę bazy
produkty
prod_id
prod_opis
wersje
wers_id
wers_opis
kolory
kolor_id
kolor_opis
kombinacje
komb_id
prod_id
wers_id
kolor_id
ceny
cena_id
komb_id
cena
Innymi słowy mówiac każdy produkt może wystąpić w każdej wersji i w kazdym kolorze. Do kombinacji produkt, wersja, kolor jest przypisana indywidualna cena. W tabeli ceny będą zapisywane ceny łaczenie z historią. Np dla prod_id=5
kombinacje
komb_id prod_id wers_id kolo_id
7 5 1 1
ceny
cena_id komb_id cena
4 7 10,27
23 7 11,79
79 7 13,91
Mój problem polega na tym, jak pobrać listę wszystkich produktów we wszystkich wersjach i kolorach ale z ceną o najwyższym id_ceny (żeby nie brał pod uwagę historii). Chciałbym zrobić to bez uzywania podzapytań, gdyż produktów będzie ok 1500, każdy może wystąpić w ok 4 wersjach i w 7 kolorach co nam daje w sumie 42000 rekordów.
Jak na razie mam takie cos:
SELECT prod_opis, wers_opis, kolor_opis, cena
FROM ceny, kombinacje, produkty, wersje, kolory where
produkty.prod_id=kombinacje.prod_id AND
kombinacje.wers_id=wersje.wers_id AND
kombinacje.kolor_id=kolory.kolor_id AND
kombinacje.komb_id=ceny.komb_id
group by(kombinacje.komb_id)
tyle ze to zwraca mi cenę z najniższą price_id dla danego komb_id.