【发布时间】:2010-09-18 03:45:42
【问题描述】:
我正在尝试构建一个查询,该查询将包含一列,指示用户是否已下载文档。我有一个名为 HasDownloaded 的表,其中包含以下列:id、documentID、memberID。找出用户是否下载了特定文档很容易;但我需要生成一个查询,结果如下所示:
name id
----------------------
abc NULL
bbb 2
ccc 53
ddd NULL
eee 13
ID 并不重要;我感兴趣的是文档是否已下载(是否为NULL)。
这是我的查询:
SELECT Documents.name, HasDownloaded.id FROM Documents
LEFT JOIN HasDownloaded ON HasDownloaded.documentID = Documents.id
WHERE HasDownloaded.memberID = @memberID
问题是,只有在 HasDownloaded 表中存在指定用户的条目时才会返回值。我想保持这个简单,并且在 HasDownloaded 中只有条目用于 已下载的文档。因此,如果用户 1 下载了 abc、bbb 和 ccc,我仍然希望 ddd 和 eee 显示在结果表中,只是 id 为 NULL。但是 WHERE 子句只为我提供了哪些条目存在的值。
我不是一个 SQL 专家 - 有没有一个操作员可以在这里给我想要的东西?我应该采取不同的方法吗?或者这是不可能的?
【问题讨论】: