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

查询分组最小order(仅NOTSIGNED数据)时为何出现SIGNED状态行?

问题原因及修正方案

问题原因

你的查询只筛选了order等于对应document_id中status='NOTSIGNED'行的最小order值,但没有限制当前行的status必须是NOTSIGNED。

拿document_id=3的情况举例:

  • 该文档下status='NOTSIGNED'的行只有id=6,其order值为0,子查询返回的最小值就是0。
  • 而id=5的行status='SIGNED',但它的order值恰好也是0,满足order=0的条件,所以被错误纳入了结果集。

修正后的SQL查询

需要在主查询的WHERE条件里额外添加status='NOTSIGNED'的过滤逻辑:

SELECT s.*
FROM document_signature s
WHERE s.status = 'NOTSIGNED'
  AND `order` =
      (SELECT MIN(s2.`order`)
       FROM document_signature s2
       WHERE s.document_id = s2.document_id
         AND s2.status = 'NOTSIGNED');

正确结果展示

执行修正后的查询,会得到符合需求的结果(已排除status='SIGNED'的行):

+----+-------------+-------------+---------+-------+-----------+
| id | document_id | employee_id | user_id | order | status    |
+----+-------------+-------------+---------+-------+-----------+
|  2 |           1 |           3 |    NULL |     1 | NOTSIGNED |
|  3 |           1 |           4 |    NULL |     1 | NOTSIGNED |
|  4 |           2 |           3 |    NULL |     0 | NOTSIGNED |
|  6 |           3 |           1 |    NULL |     0 | NOTSIGNED |
+----+-------------+-------------+---------+-------+-----------+
4 rows in set (0.00 sec)

内容的提问来源于stack exchange,提问作者Yoel Navas Escalante

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:10:30