Greatest-n-per-group in a one-to-many relationship
I managed to come up with a query that suits my need. Probably not the most efficient one, but the table is not too big...

select c.CurrencyID, c.MarketName, t.TickTime, t.Last, t.Volume
from (select t.*,
         (@rn := if(@v = CurrencyID, @rn + 1,
                    if(@v := CurrencyID, 1, 1)
                   )
         ) as rn
  from Ticker t cross join
       (select @v := -1, @rn := 0) params
  order by CurrencyID, TickTime desc
 ) as t
INNER JOIN Currency c 
    on c.CurrencyID=t.CurrencyID
where
    rn &lt;= 3;