cj333
cj333

Reputation: 2609

How do I combine the results of two queries with ordering?

How do you join the results of 2 queries, ordering by date?

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

table1,table2 have the same fields: id|article|author|tag|date

PS: BY THE WAY, tag IS workid

Upvotes: 20

Views: 38000

Answers (2)

Mark Byers
Mark Byers

Reputation: 838066

You can use UNION ALL to get rows from both tables:

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

You may also want to consider restructuring your database so that instead of using two tables you use just a single table with a field to distinguish the type of each row. Then the query can simplify to:

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

Upvotes: 38

Pentium10
Pentium10

Reputation: 207838

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

Upvotes: 8

Related Questions