+---------+---------+----------+ | post_id | user_id | topic_id | +---------+---------+----------+ | 1 | 2 | 1 | | 2 | 1 | 3 | | 3 | 3 | 1 | | 4 | 4 | 5 | | 5 | 2 | 5 | | 6 | 4 | 3 | | 7 | 1 | 4 | | 8 | 4 | 4 | | 9 | 2 | 1 | | 10 | 1 | 2 | +---------+---------+----------+
Chce skonstruowac zapytanie ktore pobierze takie wartosci topic_id gdzie w rekordach z najwiekszym post_id dla danego topic_id user_id bedzie mial wartosc X.
Czyli mowiac prosciej chodzi o uzyskanie identyfikatorow tematow w ktorych uzytkownik X odpowiadal jako ostatni.
Np dla user_id o wartosci 4 wynikiem miloby byc:
+----------+ | topic_id | +----------+ | 3 | | 4 | +----------+
Pomimo iz uzytkownik o identyfikatorze 4 odpowiadal w tematach o identyfikatorach 5, 3 i 4 to 5 nie ma w wyniku bo w tym temacie jako ostatni odpowiadal uzytkownik o identyfikatorze 2 bo takie user_id widnieje przy najwiekszym post_id dla topic_id o wartosci 5.
Zastanawialem sie nad uzyciem do tego celu GROUP BY, IF(), IN(), ale nic mi nie przychodzi do glowy.