Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql:在另一个表中插入半不同的条目_Mysql_Database - Fatal编程技术网

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

Mysql:在另一个表中插入半不同的条目,mysql,database,Mysql,Database,我有一个名为logs的表 日志有几列,其中两列被称为user\u id,一个有符号整数,和timestamp,后者是时间戳 logs表每个用户id可以有几个时间戳 我想将这些数据传输到一个名为users的表中,该表有几列,其中两列称为user\u id和last\u date 我需要做的是为每个用户id填充users表的last_date列,您猜得到,日志表的lasttimestamp 我知道如何从表中插入一个选择,但我不知道如何获得一个不同的用户ID及其时间戳的列表,该列表由最后一个时间戳过滤

我有一个名为
logs
的表

日志有几列,其中两列被称为
user\u id
,一个有符号整数,和
timestamp
,后者是时间戳

logs表每个用户id可以有几个时间戳

我想将这些数据传输到一个名为
users
的表中,该表有几列,其中两列称为
user\u id
last\u date

我需要做的是为每个用户id填充users表的
last_date
列,您猜得到,日志表的last
timestamp

我知道如何从表中插入一个选择,但我不知道如何获得一个不同的用户ID及其时间戳的列表,该列表由最后一个时间戳过滤掉

例如


选择DISTINCT(user_id),按时间戳描述从日志组中选择时间戳

首先,使用
分组方式时不需要
DISTINCT
。其次,您希望通过
用户id
进行聚合。第三,您需要为
时间戳
提供一个聚合函数:

SELECT user_id, MAX(timestamp) as last_date FROM `logs` GROUP BY user_id;
SELECT user_id, max(timestamp)
FROM `log`
GROUP BY user_id
ORDER BY max(timestamp) desc;
我不确定是否需要最终的
orderby
,但它符合问题中的查询


这假设“最后一个时间戳”是指最大的时间戳。如果情况并非如此,则使用示例数据编辑您的问题。

首先,在使用
分组方式时,您不需要
distinct
。其次,您希望通过
用户id
进行聚合。第三,您需要为
时间戳
提供一个聚合函数:

SELECT user_id, max(timestamp)
FROM `log`
GROUP BY user_id
ORDER BY max(timestamp) desc;
我不确定是否需要最终的
orderby
,但它符合问题中的查询


这假设“最后一个时间戳”是指最大的时间戳。如果情况并非如此,则使用示例数据编辑您的问题。

首先,在使用
分组方式时,您不需要
distinct
。其次,您希望通过
用户id
进行聚合。第三,您需要为
时间戳
提供一个聚合函数:

SELECT user_id, max(timestamp)
FROM `log`
GROUP BY user_id
ORDER BY max(timestamp) desc;
我不确定是否需要最终的
orderby
,但它符合问题中的查询


这假设“最后一个时间戳”是指最大的时间戳。如果情况并非如此,则使用示例数据编辑您的问题。

首先,在使用
分组方式时,您不需要
distinct
。其次,您希望通过
用户id
进行聚合。第三,您需要为
时间戳
提供一个聚合函数:

SELECT user_id, max(timestamp)
FROM `log`
GROUP BY user_id
ORDER BY max(timestamp) desc;
我不确定是否需要最终的
orderby
,但它符合问题中的查询

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