我有需要自我加入的表(通过行号和分区等获得此表)
 我试图找到最后一次访问的时间,并最终求平均

我的问题是使用多个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/

10-11 01:24