Můžete napsat něco jako
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
Ale pokud máte opravdu velké tabulky, zapomeňte na 3. normální formu a přidejte názvy kategorií do produktové tabulky. Ale pouze pokud máte opravdu velké stoly s kategoriemi.
UPD Přidejte ORDER BY