Order subquery with order by I need order my query for my subquery field.

Attempt:

 SELECT * from
 (
    SELECT *
    FROM (`multicategoria`)
    INNER JOIN `modelo` ON `modelo`.`id_MOD` = `multicategoria`.`id_MOD`
    INNER JOIN `categoria` ON `categoria`.`id_CAT` = `multicategoria`.`id_CAT`
    LEFT JOIN `media` ON `media`.`id_MED` = `modelo`.`id_MED`
    WHERE `categoria`.`id_CAT` =  '154'
    LIMIT 20, 4 )
order by x.id_CAT


But mysql output: 


  (1248): Every derived table must have its own alias
What is x?  The missing alias on the subquery?

Get rid of the subquery:

SELECT *
    FROM ...
    JOIN ...  ON ...
    JOIN ...  ON ...
    WHERE ...
    ORDER BY ...   -- Belongs after WHERE and before LIMIT
    LIMIT ...;     -- Useless without ORDER BY


Problem:  Since you are specifying a single value for id_CAT, it does not make sense to ORDER BY id_CAT.  Perhaps you want to ORDER BY id_CAT, something_else?  Or simply  ORDER BY something_else?