Question

I have two Queries which are related to two identical tables (Column names and everything is same)

Query1: "SELECT * FROM Notifications ORDER BY SUBSTR(DATE('NOW'), 0)>SUBSTR(DateToNotify, 0), SUBSTR(DateToNotify, 0)";

Query2: "SELECT * FROM NotificationsCron ORDER BY SUBSTR(DATE('NOW'), 0)>SUBSTR(DateToNotify, 0), SUBSTR(DateToNotify, 0)";

How to merge the results into one single cursor? I would want to have a join instead of merge cursor.

Était-ce utile?

La solution

You should select from the UNION of both tables. Note if you use UNION instead of UNION ALL then duplicate records will be deleted from the result set)

SELECT * FROM 
   (SELECT * FROM Notifications 
    UNION ALL
    SELECT * FROM NotificationsCron
    ) T
ORDER BY SUBSTR(DATE('NOW'), 0)>SUBSTR(DateToNotify, 0), SUBSTR(DateToNotify, 0)

Autres conseils

Use the UNION clause:

Query = "SELECT * FROM (SELECT * FROM Notifications UNION SELECT * FROM NotificationsCron) T ORDER BY SUBSTR(DATE('NOW'), 0)>SUBSTR(DateToNotify, 0), SUBSTR(DateToNotify, 0)";

Note that the two tables MUST have the same columns - If not, then create fake columns inside the queries themselves by using aliases.

For reference: http://www.tutorialspoint.com/sqlite/sqlite_unions_clause.htm

you can use UNION ALL Clause

exp:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

UNION ALL

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top