我注意到一个查询在我的代码中运行正常,但缺少where子句。
为什么它甚至可以工作,是一个错误还是一个特殊场景,规则的解释变得棘手?
SELECT
C.Id
, C.Name
, C.Qualifying
, CI.PlaceG
, CI.PlaceN
, CI.Hcp
, CI.NewHcp
FROM dbo.Competitions AS C
INNER JOIN dbo.CompInscription AS CI ON (
CI.idcomp = C.id
)
AND C.archived = 1
AND CI.idmembre = 11227
AND CI.placeg IS NOT NULL
AND CI.placen IS NOT NULL
AND CI.Status IN (0, 8)
答案 0 :(得分:1)
正如NB指出的那样,这里发生的是你的条件被应用于JOIN而不是WHERE子句。
这个 是完全有效的SQL,但它看起来并不多,可能就是为什么它看起来很奇怪。如果将第一个AND替换为WHERE,则应得到相同的结果。