小编Eva*_*kas的帖子

交叉应用与内部连接

我最近阅读了很多关于CROSS APPLYvs 的文章INNER JOIN。我尝试编写一些查询,它们都以类似的方式工作,执行计划似乎也相同。

也许有更深入知识的人可以向我解释这两者之间的区别?

OUTER APPLY (SELECT UserID
                , ActionPerformedDate = MAX(ActionDate)
            FROM dbo.AdminUsage
            WHERE SubscriberID = S.SubscriberID
                AND ActionPerformed = 'Some Action'
                AND Description = 'True'
            GROUP BY UserID) AS AU


LEFT JOIN (SELECT SubscriberID
                , UserID
                , MAX(ActionDate) OVER(PARTITION BY SubscriberID) AS ActionPerformedDate
            FROM dbo.AdminUsage
            WHERE ActionPerformed = 'Some Action'
                AND Description = 'True') AS AU
    ON AU.SubscriberID = S.SubscriberID
Run Code Online (Sandbox Code Playgroud)

在这种情况下是否有首选方法?

join sql-server subquery

3
推荐指数
1
解决办法
7799
查看次数

标签 统计

join ×1

sql-server ×1

subquery ×1