Пример довольно сложного запроса, где сортировка применяется сразу к двум подзапросам, соединённым с помощью UNION:
SELECT user, about, type, date, moder, moderated, photo FROM ( /* Основной запрос - по его полям-псевдонимам отработает сортировка внизу*/
(SELECT /*первый подзапрос*/
um.user user,
us.seller_about about, 'SELLER' type, sa_date_added date, sa_moder moder, sa_moderated moderated, seller_photo photo
FROM user_moderation um
LEFT JOIN user_settings us
ON us.user_id = um.user
INNER JOIN user u ON u.user_id = um.user
WHERE
um.sa_moderated = 0
AND u.email LIKE 'a%'
LIMIT 0, 12) /*подзапросы окружаем скобками - тогда UNION и LIMIT сработают как надо - мы получим 24 строки */
UNION /* объединяем два подзапроса в один*/
(SELECT /*второй подзапрос*/
um.user user,
us.customer_about about, 'CUSTOMER' type, sa_date_added date, sa_moder moder, sa_moderated moderated, customer_photo photo
FROM user_moderation um
LEFT JOIN user_settings us
ON us.user_id = um.user
INNER JOIN user u ON u.user_id = um.user
WHERE
um.sa_moderated = 0
AND u.email LIKE 'a%'
LIMIT 0, 12 )
) as CommonResult /*придётся использовать псевдоним для объединения*/
ORDER BY if(about = '' or about is null, 1, 0), date DESC; /* Сортировка по сумме подзапросов - заметьте здесь используется */