sql - 带有 where 子句的右外连接不返回预期结果
问题描述
我有一个完美运行的 SQL 语句:
SELECT
DailyRequest.*
FROM
DailyRequest
RIGHT OUTER JOIN
Facilities ON FacilityID = Facilities.ID
Facilities
正如预期的那样,这显示了 中的所有记录。但是,我只需要显示指定日期的记录,但仍然是所有来自设施的记录。我认为下面的 SQL 会起作用,但事实并非如此。
此 SQL 仅显示以下记录DailyRequest
:
SELECT
DailyRequest.*
FROM
DailyRequest
RIGHT OUTER JOIN
Facilities ON FacilityID = Facilities.ID
WHERE
RequestDate = '7/21/2021'
日期似乎引入了问题,但我不确定我做错了什么。我想显示连接表中的所有记录,即使它们不存在于DailyRequest
.
解决方案
可以肯定的是,您需要在联接本身中应用日期限制才能正确影响结果。尝试:
SELECT
DailyRequest.*
from DailyRequest
right outer join Facilities on FacilityID = Facilities.ID
and DailyRequest.RequestDate = '7/21/2021'
推荐阅读
- visual-c++ - 当我用 C++ 编写宏时,它会出现“声明没有存储类型”之类的错误
- scala - 无法解决 circe 自定义解码器中的编译时错误
- angular - 角度形式数据不会附加
- python - Pandas 替换 DataFrame 中的第一个结果
- javascript - Date.getUTCDate() 在不同的时区返回不同的结果 - Javascript
- javascript - 编辑网站的内容
- azure - 使用 REST API 将 blob 复制到另一个存储帐户会出现 404 错误
- bounding-box - 如何理解 YOLO 网格单元
- apache-spark - 使用 spark-submit 运行 spark 时找不到 python3.7?
- java - 为什么要为 Main 类创建一个对象,以使方法起作用?