我有一个非常基本的LEFT OUTER JOIN,可以从左表中返回所有结果,并从更大的表中返回一些其他信息。左表包含4935条记录,但是当我将其左移到另一个表中时,记录数会大大增加。
据我所知,绝对的福音是,LEFT OUTER JOIN将返回左表中的所有记录,并返回右表中的匹配记录,并为所有无法匹配的行返回空值,因此,我的理解是返回的行数不可能超过左表中存在的行数,但是这都是一样的!
SQL查询如下:
SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID
FROM SUSP.Susp_Visits LEFT OUTER JOIN
DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum
也许我在语法上犯了一个错误,或者我对LEFT OUTER JOIN的理解不完整,希望有人能解释这是怎么发生的?
后记
感谢您提供的出色答案,现在我对LEFT OUTER JOINS的了解要好得多,但是有人可以建议修改此查询的方式,以便使我只获得与左表中一样多的返回记录吗?
此查询纯粹是为了生成报告,重复的匹配项只会使事情变得混乱。
/后记