首页 > 数据库 > mysql教程 > 如何高效地连接 MySQL 历史表中的最新行?

如何高效地连接 MySQL 历史表中的最新行?

Linda Hamilton
发布: 2025-01-02 15:39:40
原创
487 人浏览过

How to Efficiently Join the Most Recent Row from a Historical Table in MySQL?

加入 MySQL 中的最新行

给定两个表,customer 和 customer_data,其中后者包含客户更改的历史记录,当前的任务是检索客户信息,同时确保仅将 customer_data 中的最新条目连接到客户表中的每个客户。

要实现此目的,请考虑利用WHERE 子句代替主查询主体,因为它提供更好的性能和代码可读性。这是一个优化的查询:

SELECT c.*,
       CONCAT(title, ' ', forename, ' ', surname) AS name
FROM customer c
LEFT JOIN customer_data d
ON c.customer_id = d.customer_id
WHERE d.customer_id = (
    SELECT MAX(customer_id)
    FROM customer_data
    WHERE customer_id = c.customer_id
)
LIMIT 10, 20;
登录后复制

此查询通过在 WHERE 子句中进行过滤,确保仅将 customer_data 中的最新行加入到 customer 中的每个客户中。 LEFT JOIN 确保来自 customer 的所有客户都包含在结果中,即使他们在 customer_data 中没有相应的条目。

关于您对同时使用 CONCAT 和 LIKE 的担忧,您是对的。 CONCAT 连接字符串,生成的字符串可以与 LIKE 运算符一起使用来执行模式匹配。您的查询在这方面是有效的。

以上是如何高效地连接 MySQL 历史表中的最新行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板