Подтвердить что ты не робот

Как объединить результаты двух запросов с упорядочением?

Как вы присоединяетесь к результатам двух запросов, упорядочивая по дате?

SELECT * FROM table1 WHERE tag='1'
SELECT * FROM table2 WHERE tag='3'

table1, table2 имеют одинаковые поля: id|article|author|tag|date

PS: ПО ПУТЕМ, тег IS workid

4b9b3361

Ответ 1

Вы можете использовать UNION ALL для получения строк из обеих таблиц:

SELECT id, article, author, tag, date FROM table1 WHERE tag = '1'
UNION ALL
SELECT id, article, author, tag, date FROM table2 WHERE tag = '3'
ORDER BY date

Вы также можете рассмотреть возможность реструктуризации своей базы данных, чтобы вместо использования двух таблиц вы использовали только одну таблицу с полем, чтобы различать тип каждой строки. Тогда запрос может упростить:

SELECT id, article, author, tag, date
FROM yourtable
WHERE (tag, type) IN (('1','type1'), ('3','type2'))
ORDER BY date

Ответ 2

SELECT * 
FROM   (SELECT * 
        FROM   table1 
        UNION 
        SELECT * 
        FROM   table2) t 
ORDER  BY t.DATE