两个查询的简单连接查询:

时间:2014-05-14 12:53:05

标签: android sqlite

我有两个查询与两个相同的表相关(列名和所有内容都相同)

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)";

如何将结果合并为一个游标?我想要一个连接而不是合并游标。

3 个答案:

答案 0 :(得分:2)

使用UNION子句:

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

请注意,这两个表必须具有相同的列 - 如果没有,则使用别名在查询本身内创建假列。

供参考:http://www.tutorialspoint.com/sqlite/sqlite_unions_clause.htm

答案 1 :(得分:2)

您应该从两个表的UNION中进行选择。请注意,如果您使用UNION而不是UNION ALL,则会从结果集中删除重复的记录。

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

答案 2 :(得分:1)

你可以使用UNION ALL Clause

EXP:

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

UNION ALL

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