【发布时间】:2018-06-08 04:21:45
【问题描述】:
我有 4 个表的数据库:
- 第一个表代表房间,有一个名为“RoomNumber”的列。
- 第二个表是 Hours,只有一列“HourNumber”。
- 第三个表是 Days,有两列“DayNumber”和“DayName”。
- 最后一张表是房间的时间表,它是其他三个表之间的关系表。
最后一个表有以下列:
- 房间号
- 天数
- 小时数
- 主题(特定时间和日期发生的事情)
但此表仅存储具有主题的房间的记录(它只保留房间的繁忙时间),它不会显示具有空主题的记录,因此它无法显示所选房间何时可用(没有主题意味着房间很干净)。
我想以某种方式编写一个查询,该查询将为我提供特定日期和小时内所有房间的状态。
例如,此查询返回第 1 天第 1 小时的所有繁忙房间:
SELECT *
FROM TimeTables
WHERE HourNumber = 1 AND DayNumber = 1
但是我想得到所有房间在特定时间的状态,我知道其余的记录不存在。
有没有办法做这样的事情?
【问题讨论】:
-
使用外连接
-
向我们展示数据库架构、示例数据、当前和预期输出。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。 How to create a Minimal, Complete, and Verifiable example
-
请分享样本数据,以及预期的结果。根据您的确切需求,您可能需要使用虚拟表进行外部联接,这需要在 Access 中使用一些技巧。
-
我很难解释它,但例如表格:
RoomNumber DayNumber HourNumber Subject 23 1 1 DiscussionA 24 1 2 DiscussionB 25 1 1 DiscussionC 26 2 3 DiscussionD 27 3 1 DiscussionE上述查询将返回:RoomNumber DayNumber HourNumber Subject 23 1 1 DiscussionA 25 1 1 DiscussionC但我想要这样的东西:RoomNumber DayNumber HourNumber Subject 23 1 1 DiscussionA 24 1 1 null 25 1 1 讨论C 26 1 1 null 27 1 1 null -
抱歉,我不确定如何在可读表格中编辑它:(