如何在ms访问查询中显示空白字段?

时间:2017-03-19 03:08:27

标签: ms-access join

我正在尝试在MS Access中进行查询。我有两个彼此相关的表,其中一些项具有直接关系并列在两个表中,以及一些只出现在一个表中的项。

我正在尝试创建一个查询,以便轻松查看其他表中未列出的项目。 (例如,我有2个表,一个学生列表和一个图书借阅列表,我想显示可能已经借用并且从未在一个查询中借过的学生)对于已借用的学生,它会显示出来很好,但对于那些从未借过的学生来说,它会删除整个行,让我留下过去曾借用过东西的学生。我想显示整个学生列表,即使他们已经借用了某些东西,如果他们从未借过某些东西,只需将借用字段留在查询中作为空字段。

我尝试使用 Is Null 作为其中一个条件,但这似乎不起作用。

请帮忙。提前致谢。

1 个答案:

答案 0 :(得分:1)

您需要的是OUTER JOIN。请阅读A Visual Explanation of SQL Joins

如果您要列出所有学生以及他们借阅的书籍总数,无论他们是否实际借用了任何书籍,您都可以使用这样的查询

SELECT s.id, s.name, COUNT(b.book_id) borrowed_count
  FROM students s LEFT JOIN borrowed b
    ON s.id = b.student_id
 GROUP BY s.id

输出:

| id | name | borrowed_count |
|----|------|----------------|
|  2 | Jane |              0 |
|  1 | John |              2 |

了解Jane从未借过书籍但仍然列出

请参阅SQLFiddle演示