我有需要自我加入的表(通过行号和分区等获得此表)
我试图找到最后一次访问的时间,并最终求平均
我的问题是使用多个INNER联接条件或使用Where子句更好吗?
原始表
RN,AppId,UserId,日期时间,国家
多个内部加入条件
SELECT TBL0.AppId , TBL0.UserId, TBL0.Datetime, TBL1.Country ,
Diff ( TBL0.Datetime,TBL1.Datetime) AS TimeSpans
FROM TBL AS TBL0 INNER JOIN TBL AS TBL1
ON TBL0.UserXuid == TBL1.UserId AND TBL0.AppId == TBL1.AppId
WHERE TBL0.RN -1 == TBL0.RN
关于条款
SELECT TBL0.AppId , TBL0.UserId, TBL0.Datetime, TBL1.Country ,
Diff ( TBL0.Datetime,TBL1.Datetime) AS TimeSpans
FROM TBL AS TBL0 INNER JOIN TBL AS TBL1
ON TBL0.UserXuid == TBL1.UserId
WHERE TBL0.RN -1 == TBL0.RN AND TBL0.AppId == TBL1.AppId
那么哪个更好,性能方面
最佳答案
为什么不自己看呢? SQL Server具有内置的分析工具,您可以在其中查看详细的执行计划。请参见here。
关于mysql - 在多列条件下使用内部联接与使用WHere子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26165839/