Du kan skriva något i stil med
SELECT product.*, bottom_category.name, top_category.name
FROM product
LEFT JOIN bottom_category ON bottom_category.id = product.bottom_category_id
LEFT JOIN top_category ON top_category.id = bottom_category.top_category_id
ORDER BY top_category.id,bottom_category.id
Men om du har riktigt stora tabeller, glöm bara bort 3:a normalformen och lägg till namn för kategorier i produkttabellen. Men bara om du har riktigt stora bord med kategorier.
UPD Lägg till ORDER BY