@ypercube спасибо, забыл повторно RTFQ после вашего первого комментария, ответ обновлен;)

аюсь объединить два запроса, которые оба содержат ORDER BY. Как я обнаружил, вы не можете делать заказы по запросам, которые являются частью UNION. Я просто не знаю, как еще сделать этот запрос тогда. Позвольте мне объяснить, что я пытаюсь сделать.

Я пытаюсь выбрать 40 самых последних профилей и из этого списка выбрать случайный набор из 20. Затем я хочу объединить это с:Выберите 40 случайных профилей, где профиль не попадает в исходные 40 самых последних профилей, запрошенных в первом набореСлучайно закажите весь набор из 60 записей.

Я знаю о последствиях эффективности использования функции Rand ()

SELECT profileId
  FROM (SELECT profileId
          FROM profile profile2
         WHERE profile2.profilePublishDate <= Now()
      ORDER BY profile2.profilePublishDate DESC
         LIMIT 0,40) AS profile1
ORDER BY RAND()
   LIMIT 0,20
UNION (SELECT profileId
         FROM profile profile4
        WHERE profileId NOT IN (SELECT profileId
                                  FROM profile profile4
                                 WHERE profile4.profilePublishDate <= Now()
                              ORDER BY profile4.profilePublishDate DESC
                                 LIMIT 0,40)    
     ORDER BY RAND()    
        LIMIT 0,40) as profile3
ORDER BY RAND()

ОБНОВЛЕНИЕ: Это решение, основанное на помощи Abhay ниже (спасибо Abhay):

SELECT *
FROM
(
    (
        SELECT profileId
        FROM 
        (
            SELECT profileId
            FROM profile profile2
            WHERE profile2.profilePublishDate <= Now()
            ORDER BY profile2.profilePublishDate DESC
            LIMIT 0,40
        ) AS profile1
        ORDER BY RAND()
        LIMIT 0,20
    )
    UNION
    (
        SELECT profileId
        FROM profile profile4
        WHERE profileId NOT IN (
            SELECT * FROM
            (
            SELECT profileId
            FROM profile profile4
            WHERE profile4.profilePublishDate <= Now()
            ORDER BY profile4.profilePublishDate DESC
            LIMIT 0,40
            ) AS temp2
         )
        ORDER BY RAND()    
        LIMIT 0,40
    )
) TEMP
ORDER BY RAND();

Ответы на вопрос(2)

Ваш ответ на вопрос