Nie mogę poradzić sobie z pewnym problemem. Otóż chcę wyświetlić dane z 4 tabelek.
produkty
- id
- data_dodania
statusy_produkty
- id
- produkt_id
- status_id
- data_dodania
- uzytkownik_id
statusy
- id
- przyjazna_nazwa
uzytkownicy
- id
- imie
- nazwisko
(dalsze pola)
Chcę uzyskać wszystkie dane z tych 4 tabelek, ale z takim warunkiem, aby pobrać ostatnio dodany rekord do produktu z tabelki statusy_produkty (innymi słowy ostatni status przypisany do tego produktu, ostatni rekord z tabelki statusy_produkty który ma unikalne produkt_id).
Wykonuję zapytanie, które wyciąga mi dane tak, jak chcę, ale zawsze z pierwszym statusem, ja natomiast chciałbym status ostatni. Chyba (nie jestem pewien, ale tak mi się wydaje) powinienem użyć tu podzapytania, które wyciągnie statusy do konkretnego produktu, posortuje je malejąco i będzie limitowane do maks 1 zwracanego rekordu, ale nie mam pomysłu w którym miejscu mógłbym je tu napisać:
SELECT a.*, b.*, c.*, d.* FROM produkty a JOIN (statusy_produkty b) ON (b.produkt_id=a.id) JOIN (statusy c) ON (c.id=b.status_id) JOIN (uzytkownicy d) ON (d.id=b.uzytkownik_id) GROUP BY a.id ORDER BY b.added DESC
Czy ktoś mógłby posłużyć mi wskazówką?