右外连接与 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'
我有一个 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'