右外连接与 where 子句不返回预期结果

Right outer join with where clause not returning expected results

我有一个 SQL 完美运行的语句:

SELECT 
    DailyRequest.*
FROM 
    DailyRequest
RIGHT OUTER JOIN
    Facilities ON FacilityID = Facilities.ID 

这按预期显示了 Facilities 中的所有记录。但是,我只需要显示指定日期的记录,但仍然全部来自 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'