MySQL запрос UNION из одной таблицы + ORDER BY

У меня есть одна таблица с двумя запросами, и мне нужно отсортировать ее по убыванию, используя ORDER BY. Вот мой запрос MySQL, который не работает должным образом:

(SELECT `text` 
FROM `comments` 
WHERE user_fr='".$user."' && archive='1'
ORDER BY `is_new_fr` DESC) 
    UNION
(SELECT `text` 
FROM `message` 
WHERE user_to='".$user."' && archive='1' 
ORDER BY `is_new_to` DESC)

Описание!

is_new_fr и is_new_to подсчитывают общее количество новых сообщений.

Вот содержимое моей таблицы:

user_fr | пользователь_кому | архив | is_new_fr | is_new_to| текст

имя1 | имя2 | 1 | 2 | 0 | тестирование...

имя2 | имя1 | 1 | 0 | 5 | тестирование ...

Я хочу сделать заказ, чтобы 1-й отображал заметку с большим количеством сообщений до нескольких или другими словами, используя тип DESCending.

Это отображение на странице, которую я хочу сделать:

Открыть диалог с именем2. Сообщения (5) Открыть диалог с именем1. Сообщения (2)

Благодарю вас!


person ilnur777    schedule 15.04.2010    source источник


Ответы (1)


Единственный способ, который я знаю, это подзапрос:

SELECT `text`
FROM (
    SELECT `text`, `is_new_fr` AS `is_new`
    FROM `comments`
    WHERE user_fr = '".$user."'
    AND archive = '1'

    UNION

    SELECT `text`, `is_new_to` AS `is_new`
    FROM `message`
    WHERE user_to = '".$user."'
    AND archive = '1'
) ORDER BY `is_new` DESC
person Wolph    schedule 15.04.2010