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

如何用单条SQL查询指定ID及以下、同docId的records表数据?

单条SQL实现需求的方案

当然可以!你完全能用单条SQL完成这个查询,下面给你两种实用的实现方式:

方法一:使用子查询

这种方式和你原来两条SQL的逻辑完全一致,只是把获取docId的步骤整合到子查询里:

SELECT id, title
FROM records
WHERE docId = (SELECT docId FROM records WHERE id = 4)
  AND id <= 4;

子查询会先拿到id=4对应的docId,外层查询再筛选出所有拥有这个docId且id<=4的记录。

方法二:使用自连接

通过将表与自身连接,以目标id对应的行作为匹配条件,也能实现需求:

SELECT r.id, r.title
FROM records r
JOIN records r_target ON r.docId = r_target.docId
WHERE r_target.id = 4
  AND r.id <= 4;

这里我们把原表别名为r(代表要返回的记录),把目标行所在的表别名为r_target,通过docId关联后,筛选出符合条件的记录。

结果验证

用你提供的示例数据测试,两种方法都会返回预期结果:

[{ id: 4, title: 'd'},{id: 2, title: 'b'},{id: 1, title: 'a'}]

小提示

如果你的数据量较大,建议给id(通常主键默认有索引)和docId字段创建合适的索引,能显著提升查询效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:38:06