没有子项

时间:2015-05-08 21:01:52

标签: sqlite android-sqlite

我有以下架构:

小时表:此表有“常量”数据,它永远不会更改,因为只会存储可安排的小时数

hour (int)
----
8
9
10

约会表

hour (int)  |  date (text)
--------------------------
10          | 25/08/2015

在我的应用程序中,我想只显示基于小时 - 日期过滤器设置新约会的可用时间。例如,我可以说这些日子:

  • 25/08/2015:可用时间为89,因为10已被占用
  • 26/08/2015:可用时间为8910,因为该日期没有约会。

一开始我使用的是这个查询:

select h.hour 
from hours h, appointment a 
where h.hour != a.hour and a.date = 'the-date';

此查询仅在给定日期中有约会时有效,但对于没有约会的其余日期,它将返回空结果。我可以通过应用程序完成这项任务,但我试图耗尽所有数据库的可能性。

1 个答案:

答案 0 :(得分:1)

您可以使用outer join,但子查询可能更容易理解:

SELECT hour
FROM hours
WHERE hour NOT IN (SELECT hour
                   FROM appointment
                   WHERE date = ?)