SELECT o.field1, o.field2, c.catname, p.prodname
FROM order AS o
INNER JOIN product AS p ON o.product = product.id
INNER JOIN category ON p.category = c.id
ORDER BY c.catname
If your orders can (or ever will be able to) contain more than one product, you need to restructure your relations. Order should contain whatever goes for the entire order, such as billing and shipping adresses, order id etc.
orderrow, orderproduct or whatever you'd like to call it should contain everything that concerns one single item in the order such as product, quantity, price (at the time of purchase; no guarantee that price lookup in product table will be unchanged) etc.