Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Mysql一对多追踪历史首条记录

Mysql一对多轻松实现追踪历史首条记录

作者:但老师

本文介绍了在数据库中处理一对多关系时,如何使用JOIN和WHERE子句来找到每个主表记录对应的子表中特定记录(例如时间最早的记录),通过将B表与自身进行比较并使用MIN()函数,可以精确匹配到所需记录

背景

环境设定

假设我们有两个表:

B 表中还有一个时间戳字段 created_at 用于记录记录的创建时间。

我们使用JOIN操作和WHERE子句来解决这个问题。

SELECT b1.*
FROM B b1
JOIN A a ON b1.id = a.id
WHERE b1.created_at = (
    SELECT MIN(b2.created_at)
    FROM B b2
    WHERE b2.id = a.id
);

原理

这个查询的工作原理如下:

外层查询

WHERE子句中的子查询

匹配最早记录

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文