微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 SQL 中其他值基于时间戳更新表列的值?

如何解决如何使用 SQL 中其他值基于时间戳更新表列的值?

我需要用另一个表中的值更新表中的空值。很快,这些值就是组的 id,我需要在我用户的所有事件中传递这些 groupid,以识别用户在哪个组中举办了这个活动。 示例:

输入:

表 A:

事件 时间戳 groupid 用户名
创建 2021-03-09T09:58:17.198362522Z c98
更新 2021-03-09T09:59:17.198362522Z c98
创建 2021-03-09T09:46:17.198362522Z a32
更新 2021-03-09T10:20:17.198362522Z c98
更新 2021-03-09T10:22:17.198362522Z c98
创建 2021-03-09T09:58:17.198362522Z a32
创建 2021-03-09T10:40:17.198362522Z c98

表 B:

groupid 时间戳 用户名
f13 2021-03-09T09:58:17.198362522Z c98
f14 2021-03-09T10:15:17.198362522Z c98
ad8 2021-03-09T09:45:00.198362522Z a32
ad9 2021-03-09T09:58:17.198362522Z a32

期望输出

表 A:

事件 时间戳 groupid 用户名
创建 2021-03-09T09:58:17.198362522Z f13 c98
更新 2021-03-09T09:59:17.198362522Z f13 c98
创建 2021-03-09T09:46:17.198362522Z ad8 a32
更新 2021-03-09T10:20:17.198362522Z f14 c98
更新 2021-03-09T10:22:17.198362522Z f14 c98
创建 2021-03-09T09:59:17.198362522Z ad9 a32
创建 2021-03-09T10:40:17.198362522Z f14 c98

解决方法

这不就是一个简单的连接吗?

update table1 a
set groupid = (select groupid from table2 b
                where a.userid = b.userid
                and a.timestamp >= b.timestamp
                order by b.timestamp desc
                limit 1
              )
where a.groupid id null

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。