在 MySQL 的 Join 语句中查询最大日期
要检索 MySQL 中记录的历史位置,您可以使用 JOIN 语句。但是,当遇到性能问题和结果中存在重复数据时,需要修改方法。
修改查询
仅检索每个记录 ID 的最新修改时间和位置,请考虑以下查询:
SELECT t1.received_id , t1.transaction_id , t1.date_modified , l.location FROM transactions t1 JOIN ( SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id) max_record ON max_record.received_id = t1.received_id AND max_record.maxmodify = t1.date_modified JOIN locations l ON l.location_id = t1.location_id JOIN received r ON r.received_id = t1.received_id WHERE t1.received_id = '1782' ORDER BY t1.date_modified DESC
Key修改
修改位于子查询中:
SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id
此子查询检索每个received_id的最大日期。
加入最大值
然后主查询使用两个连接到这个子查询条件:
通过在最大日期加入,您可以消除重复的结果并仅捕获最近的位置变化。
以上是如何使用JOIN语句高效查询MySQL中最新的位置数据?的详细内容。更多信息请关注PHP中文网其他相关文章!