2013-06-11 3 views
4

У меня есть следующий запрос, который успешно дает результаты. Тем не менее, результаты являются последовательными, и я хотел бы заказать их по колонке в обеих таблицах называется clicksUNION ALL, заказывающий конечные результаты

(SELECT women_id, title, body FROM women ORDER BY women_id DESC LIMIT 5) 
UNION ALL 
(SELECT man_id, title, body FROM man ORDER BY man_id DESC LIMIT 5) 

Прямо сейчас это дает результаты, как это:

women 41124 
women 124 
women 12 
women 2 
women 1 
men 3455434 
men 1233 
men 135 
men 23 
men 1 

мне нужно это, чтобы дать окончательные результаты, как это:

men 3455434 
women 41124 
men 1233 
men 135 
women 124 
men 23 
women 12 
women 2 
women 1 
men 1 

ответ

5

Вы должны принести в clicks в UNION -ED набора данных, добавьте ORDER BY, а затем спроецировать ненужную колонку с другой SELECT, как это:

SELECT person_id, title, body FROM ((
    (SELECT women_id as person_id, title, body, clicks FROM women ORDER BY women_id DESC LIMIT 5) 
UNION ALL 
    (SELECT man_id as person_id, title, body, clicks FROM man ORDER BY man_id DESC LIMIT 5) 
) ORDER BY clicks DESC) data 
+0

Я собирался предложить это. Кажется, у 4 или 5 других была такая же идея - это единственная, которая добавляет в столбце «клики» и заказывает ее, хотя –

+0

почему вы добавили подзапрос? – Ochi

+0

@Ochi Проецировать столбец 'clicks', который OP не хотел видеть на выходе. – dasblinkenlight

0
(
    (SELECT women_id, title, body, clicks FROM women ORDER BY women_id DESC LIMIT 5) 
    UNION ALL 
    (SELECT man_id, title, body, clicks FROM man ORDER BY man_id DESC LIMIT 5) 
) 
ORDER BY clicks DESC 

просто добавить заказ в конце и работу

+0

щелчки по-прежнему не действительная колонка внутри этого UNION –

+0

он сказал, что есть такая колонка – Ochi

+0

Вы добавили ее сейчас - во время публикации вы не включили ее в UNIONs –

0
SELECT * FROM 
(
    (SELECT women_id AS ID, title, body FROM women LIMIT 5) 
    UNION ALL 
    (SELECT man_id AS ID, title, body FROM man LIMIT 5) 
) 
ORDER BY ID DESC 
+0

Этот выглядит так, как будто он подходит хорошо, но он сказал: «Каждая производная таблица должна иметь свой собственный псевдоним», как ошибка –