You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询优化求助:如何针对指定p_id仅获取max(v.id)

针对指定p_id获取最大v.id的SQL实现

当然可以帮你搞定这个需求!要针对指定的p_id只查询最大的v.id(以及关联的用户信息),你提到的ORDER BY v.id DESC LIMIT 1是个非常直观的方案,完整的SQL语句如下:

SELECT v.id, u.firstname as author_name, u.lastname as author_surname
FROM ps_versioning as v 
INNER JOIN u_users as u ON u.user_id = v.user_id 
WHERE v.patient_id = p_id
ORDER BY v.id DESC 
LIMIT 1;

另外补充一种常用的实现思路——用聚合函数MAX()结合子查询,适合需要更严谨关联逻辑的场景:

SELECT v.id, u.firstname as author_name, u.lastname as author_surname
FROM ps_versioning as v 
INNER JOIN u_users as u ON u.user_id = v.user_id 
WHERE v.patient_id = p_id
AND v.id = (SELECT MAX(id) FROM ps_versioning WHERE patient_id = p_id);

两种方式各有特点:

  • ORDER BY + LIMIT写法简洁直观,适合单条最大记录的查询场景,数据量不大时性能表现优秀;
  • 子查询+MAX()的方式扩展性更强,比如需要批量查询多个患者的最新版本时更灵活,数据量较大时也能避免排序带来的额外开销。

内容的提问来源于stack exchange,提问作者zinon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:52