Mysql:将半不同的条目插入另一个表中

时间:2014-10-12 17:42:51

标签: mysql database

我有一张名为logs的表。

logs有几列,其中两列称为user_id,一个有符号整数,timestamp,这是一个时间戳。

日志表每个user_id可以包含多个时间戳。

我想将此数据转移到名为users的表格中,该表格包含多个列,其中两列称为user_idlast_date

我需要做的是为每个user_id填充用户表的last_date列,您猜对了,日志表的最后timestamp

我知道如何从表中插入选择但我无法弄清楚如何获取不同user_id的列表及其时间戳,并按上一个时间戳过滤掉。

E.G。

SELECT DISTINCT (user_id), timestamp FROM logs GROUP BY timestamp DESC

2 个答案:

答案 0 :(得分:2)

首先,使用distinct时不需要group by。其次,您希望按user_id汇总。第三,您需要timestamp的聚合函数:

SELECT user_id, max(timestamp)
FROM `log`
GROUP BY user_id
ORDER BY max(timestamp) desc;

我不确定是否需要最终order by,但它符合问题中的查询。

这假定“last timestamp”表示最大时间戳。如果不是这种情况,请使用示例数据编辑您的问题。

答案 1 :(得分:1)

SELECT user_id, MAX(timestamp) as last_date FROM `logs` GROUP BY user_id;