SQL 查询在做什么?

What is this SQL query doing?

我希望这里有一个更笼统的语言问题,但整个查询感觉特别混乱。 :P 我从来没有见过一个 SQL 语句后跟一个逗号(而不是分号),然后是 而不是 另一个语句,也不是一个子查询它后面的附加 WHERE 子句。那么...wtf?

当我 运行 这个查询时,我得到一个包含两列的结果集:AddressZip

这是 运行ning 针对 SQL 服务器 btw。

    SELECT 
        [Address] AS [Address],
        [AgencySitesV3].[Zip] AS [Zip]
    FROM
        [AgencySitesV3] WITH (NOLOCK)
        INNER JOIN [Zip] WITH (NOLOCK) ON [AgencySitesV3].[Zip] = [sZipCode]
        ,(
            SELECT gZipPoint
            FROM [Zip] WITH (NOLOCK)
            WHERE sZipCode = '30301'
        ) AS qryOrigin  
    WHERE 
        NULLIF([ActiveApp], '') IS NOT NULL
        AND NULLIF([ActiveScheduling], '') IS NOT NULL
        AND NULLIF([Adult], '') IS NOT NULL

编辑: 感谢所有提供的人 info/comments。很明显,这个查询使用了 SQL-89 连接语法,这就是我以前从未见过它的原因。 :P 然而,查询 also 使用现代连接,这使得它更奇怪。为了简洁起见,我删掉了很多内容,但我重新添加了一个连接,因为现在我不确定在替换 SQL 时对 ON 条件使用什么 - 89人加入。查看更新后的查询代码。

SELECT 
    [Address] AS [Address]
FROM 
    [AgencySitesV3] WITH (NOLOCK)
    ,(
        SELECT gZipPoint
        FROM [Zip] WITH (NOLOCK)
        WHERE sZipCode = '30301'
        ) AS qryOrigin  -- this is the table alias for 
        -- the derived table from the sub query
WHERE 
    NULLIF([ActiveApp], '') IS NOT NULL
    AND NULLIF([ActiveScheduling], '') IS NOT NULL
    AND NULLIF([Adult], '') IS NOT NULL

此查询使用旧式联接从地址列中获取笛卡尔积,派生 table 的输出。这意味着它正在获取两个输出的所有组合。它应该是一个 CROSS JOIN,但无论如何。

简而言之 - 它正在获取邮政编码 30301 的所有地址