MySQL获取子表最新一条数据可以通过以下几种方式实现:
SELECT * FROM child_table WHERE parent_id = 'xxx' ORDER BY create_time DESC LIMIT 1;
这个查询会根据创建时间(假设有一个叫做create_time的字段)倒序排序,然后使用LIMIT 1限制结果集只返回一条数据。
SELECT c.* FROM child_table c
JOIN (
SELECT MAX(child_id) AS max_child_id FROM child_table WHERE parent_id = 'xxx'
GROUP BY parent_id
) m ON c.child_id = m.max_child_id;
这个查询会先在子查询中获取到最大的child_id,然后在外层查询中将获取到的child_id与子表进行关联,从而得到最新的一条数据。
针对以上两种方式,如果在使用的过程中遇到性能问题,可以通过添加适当的索引(如在parent_id和create_time字段上)来提高查询效率。
推荐腾讯云的MySQL云数据库产品:https://cloud.tencent.com/product/cdb 腾讯云MySQL云数据库是基于MySQL社区版定制而成的稳定、可靠、安全、弹性伸缩的云数据库服务,提供了高可用、备份恢复、数据迁移、监控报警等功能,适用于各种规模的应用场景。
领取专属 10元无门槛券
手把手带您无忧上云