【问题标题】:Selecting the lowest difference between values per user between two tables选择两个表之间每个用户的值之间的最小差异
【发布时间】:2014-04-07 15:12:24
【问题描述】:

我有两个表:Positions 和 Uploads。它们包含用户名和时间戳以及其他信息。我想知道玩家在上传内容之前花了多长时间。为此,我需要位置表中的最低时间戳来获取他们的开始时间。然后我需要从第一个上传时间戳中减去它。

因此,换句话说:我想知道玩家在上传他们的第一个内容之前在游戏中花费了多长时间。

我可以只写一个 php 交易来处理计算,但我觉得这可能有点矫枉过正,而且可能有一个基本的 SQL 命令可以自动完成。我正在集思广益如何做到这一点,这就是我目前所拥有的:

Select a.UserID, DATEDIFF(Min(a.timestamp),Min( b.Timestamp))
From db.Uploads a, db.Position b
WHERE 
a.UserID = b.UserID
GROUP BY a.UserID

有人有想法吗?我知道我的代码很蹩脚,但目前这就是我想出的。

【问题讨论】:

  • 您的查询有什么问题?如果我理解正确,它可能真的有效。
  • 嗨 fancPants,结果证明 datediff 不是我需要的,即使它是一个日期字段。不完全确定为什么,但就是这样。我必须这样做:选择 a.UserID, (Min(a.timestamp)-Min(b.Timestamp)) 作为 TimeDifference From db.Uploads a, db.Position b WHERE a.UserID = b.UserID GROUP BY a。用户 ID

标签: mysql sql timestamp timestamp-analysis


【解决方案1】:

由于某种原因,我使用 DateDiff 并不是很疯狂,但是当我进行正常减法时它起作用了吗? Bluehost 的表设置一定是在做一些奇怪的事情。

Select a.UserID, Min(a.timestamp)-Min(b.Timestamp)
From db.Uploads a, db.Position b
WHERE 
a.UserID = b.UserID
GROUP BY a.UserID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 2011-05-11
    • 1970-01-01
    • 2021-06-27
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多