0

我注意到一个查询在我的代码中运行良好,但它缺少 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)
4

1 回答 1

1

正如 NB 所指出的,这里发生的情况是您的条件被应用于 JOIN 而不是 WHERE 子句。

完全有效的 SQL,但很少见,这可能就是它看起来很奇怪的原因。如果你用 WHERE 替换第一个 AND,你应该得到相同的结果。

于 2013-06-27T10:26:23.327 回答