1

我有 2 个要从中查询的表。

第一个表(我们称之为users)有这些列:idname

第二个表(我们称之为transactions)有这些列user_idamounttimestamp

如何找出表中transactions每个用户的最新时间戳users

编辑:

感谢您迄今为止的所有回答!真的很感激。如果我想选择最新时间戳大于某个值的用户呢?

4

4 回答 4

3
SELECT u.*,MAX(t.timestamp) latest_timestamp
FROM transactions t
LEFT JOIN users u ON t.user_id=u.id
GROUP BY t.user_id

应该是你要找的。此查询应为每个用户选择最新的事务时间戳。

于 2012-06-25T04:05:20.843 回答
1
SELECT 
     id,
     name,
     max(timestamp) 
FROM users 
INNER JOIN transactions 
ON users.id = transactions.user_id
GROUP BY id,name

这应该为用户表中的每个用户提供最大的时间戳

于 2012-06-25T04:07:11.970 回答
0

尝试这个

SELECT Users.name,MAX(T.timestamp) As LastTimeStamp
FROM Users 
LEFT JOIN Transactions as T ON Users.user_id=T.user_id    
GROUP BY Users.name    
于 2012-06-25T04:08:35.040 回答
0

这个查询比你问的要多,但这是为了以防你的下一个问题是“如果我也想知道属于最大时间戳的数量怎么办?”:

SELECT id, name, t.`timestamp`, amount
FROM (SELECT id, name, MAX(`timestamp`) AS `timestamp`
    FROM users u
    INNER JOIN transactions t ON t.user_id=u.id
    GROUP BY id, name
) AS maxt
INNER JOIN transactions t 
ON t.user_id = maxt.id AND t.`timestamp` = maxt.`timestamp`
于 2012-06-25T04:13:01.887 回答