在LEFT JOIN SQL查询中帮助WHERE
发布时间:2020-12-12 06:57:22 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试构造一个查询,其中将包含一列,指示用户是否已下载文档。我有一个名为HasDownloaded的表与以下列:id,documentID,memberID。查找用户是否下载了特定的文档很容易;但是我需要生成一个查询,结果将如下所示: name id----------------------abc NU
我正在尝试构造一个查询,其中将包含一列,指示用户是否已下载文档。我有一个名为HasDownloaded的表与以下列:id,documentID,memberID。查找用户是否下载了特定的文档很容易;但是我需要生成一个查询,结果将如下所示:
name id ---------------------- abc NULL bbb 2 ccc 53 ddd NULL eee 13 身份证并不重要;我感兴趣的是文件是否已经下载(是否为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专家 – 有没有一个运算符会给我我想要的东西?我应该采取不同的方法吗?还是这不可能? 解决方法将WHERE子句中的条件移动到连接条件。SELECT Documents.name,HasDownloaded.id FROM Documents LEFT JOIN HasDownloaded ON HasDownloaded.documentID = Documents.id AND HasDownloaded.memberID = @memberID 只要您想要引用左连接表,WHERE子句将会是必需的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SqlServer附加数据库出错,错误代码5123
- sql – 仅从多个表中选择相同的列什么东西=某事
- sql-server-2014 – 如何修复错误“SQL Server代理自动停止
- sql-server – 所有SQL Server版本是否自动重建索引或具有默
- mysql 查询当天、本周,本月,上一个月的数据
- model – laravel:雄辩的例子,将数据插入数据库
- sql-server – 子查询的别名与主查询的别名相同
- sql-server – 如何在Sql Server中存储’n’天的Web服务器日
- sqlserver安装的时候要求重启计算机问题
- SELECT DISTINCT在一列,返回多个其他列(SQL Server)