SQL查询查找未使用的主键列表

时间:2014-07-16 20:14:00

标签: sql ms-access

我正在尝试在Access数据库中创建一个下拉选取器,以显示未使用的所有主键,在这种情况下,日期仅限于该月的第一天。

我有2个用于此用途的表

tblReport 
pk date  |  Data for this record |
05/01/13 |     stuff
06/01/13 |     stuff
07/01/13 |     stuff
08/01/13 |     stuff

tblFutureDates
pk date  |  an index
05/01/13 |     1
06/01/13 |     2
07/01/13 |     3
08/01/13 |     4
09/01/13 |     5
10/01/13 |     6
11/01/13 |     7
12/01/13 |     8

我想要一个查看这两个表的查询,并返回第二个表中不在第一个表中的日期。我尝试了一些连接,但无法弄明白。这就是我到目前为止所做的:

SELECT tblFutureDates.FutureDate
FROM tblFutureDates RIGHT JOIN tblReport 
ON tblFutureDates.FutureDate = tblReport.ReportMonth;

然后返回:

05/01/13
06/01/13
07/01/13
08/01/13

由于

1 个答案:

答案 0 :(得分:1)

这会从tblFutureDates NOT IN

中选择tblReport的日期
SELECT tblFutureDates.FutureDate
FROM tblFutureDates 
WHERE tblFutureDates.FutureDate
NOT IN (SELECT tblReport.ReportMonth FROM tblReport)

您还可以使用LEFT JOIN WHERE IS NULLNOT EXISTS了解有关所有3个的更多信息,请参阅this post