Combine two statements with LIMITS using UNION

sql, sqlite

Solution

Use subqueries and perform the limit within them.

SELECT  *
FROM    (   SELECT  * 
            FROM    Seq 
            WHERE   JULIANDAY('2012-05-25 19:02:00') <= JULIANDAY(TimeP) 
            ORDER BY TimeP
            LIMIT 50
        )
UNION
SELECT  *
FROM    (   SELECT  * 
            FROM    Seq 
            WHERE   JULIANDAY('2012-05-29 06:20:50') <= JULIANDAY(TimeI) 
            ORDER BY TimeI
            LIMIT 50
        )

Problem

Is there a way to combine these two statements into one without having duplicate entries? ``` SELECT * FROM Seq where JULIANDAY('2012-05-25 19:02:00')<=JULIANDAY(TimeP) order by TimeP limit 50 SELECT * FROM Seq where JULIANDAY('2012-05-29 06:20:50')<=JULIANDAY(TimeI) order by TimeI limit 50 ``` My first, obvious attempt is not supported by `SQLITE` (Syntax error: Limit clause should come after UNION not before): ``` SELECT * FROM Seq where JULIANDAY('2012-05-25 19:02:00')<=JULIANDAY(TimeP) order by TimeP limit 50 UNION SELECT * FROM Seq where JULIANDAY('2012-05-29 06:20:50')<=JULIANDAY(TimeI) order by TimeI limit 50 ```

Original source