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

标签 mysql database

我有一个名为 logs 的表。

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

日志表中每个 user_id 可以有多个时间戳。

我想将此数据传输到一个名为 users 的表中,该表有多个列,其中两列称为 user_idlast_date .

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

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

例如

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

最佳答案

首先,使用group by 时不需要distinct。其次,您想按 user_id 进行聚合。第三,你需要一个timestamp的聚合函数:

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

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

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

关于Mysql:将半不同的条目插入另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26328085/

相关文章:

php - 显示来自用阿拉伯语编写的 mysql 的数据

mysql - Ansible 和 liquibase 集成

php - mysql/php - 根据 id 查看数据库表中的特定行

sql - InnoDB 排序真的那么慢吗?

database - 带有 Unaccent 的 Postgres 自动生成的表列,使用触发器?

mysql - 难以调试 "Mysql server has gone away"

mysql - spring data JPA - mysql - findById() 为空,除非之前调用了 findAll()

php - 无法调用 exec(mysql < quicktest.sql)

java - 优化对heroku Postgresql数据库的写入

php - 如何在 Laravel Eloquent 中指定多个一对一关系?