当没有 children 时,关联 parent-children 中的结果为空

Empty result in association parent-children when there are not children

我有以下架构:

小时table:这个table有"constant"数据,它永远不会改变,因为只会存储schedule-able小时

hour (int)
----
8
9
10

约会table

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

在我的应用程序中,我只想显示可用时间以根据 hour-date 过滤器设置新约会。例如,我可以说这几天:

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

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

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

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

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