Jeg kender ikke kodetænderen, men dybest set vil du have den til at gøre foreningen først og derefter anvende rækkefølgen over hele sættet. Dette ville kræve en underforespørgsel. Det skulle resultere i følgende SQL-forespørgsel:
select * from
((SELECT * FROM media m INNER JOIN category c ON m.category_id = c.id )
UNION ALL
(SELECT * FROM media m INNER JOIN category c ON m.category_id = c.id)) T
ORDER BY m.media_files DESC LIMIT 3
Håber det hjælper dig lidt.