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

SQL对比req_table与admins_table同名列查询结果异常求助

SQL查询逻辑错误修正方案

原有语句错误点

  • 逻辑连接符错误:WHERE子句使用OR拼接条件,只要满足stat_id not in (3)就会直接返回数据,完全跳过prev字段匹配校验,是结果不符合预期的核心原因
  • 匹配规则错误:原有子查询逻辑为任意1个prev字段相等即可返回id,不符合要求的「5个prev字段全部相等」规则
  • 多余限制条件:子查询额外添加了admins_table.[prev_x] = 1的过滤规则,需求无此要求,会错误拦截符合条件的数据
  • 语法错误:SELECT字段列表末尾多了冗余逗号,子查询中引用了不存在的req_table.req_id字段(req_table主键字段为id)
  • 执行效率低下:多个重复子查询反复关联两张表,资源消耗远高于正常写法

修正后的查询语句

SELECT DISTINCT 
    r.id, 
    r.stat_id, 
    r.prev_1, 
    r.prev_2, 
    r.prev_3, 
    r.prev_4, 
    r.prev_5
FROM req_table r
INNER JOIN admins_table a 
    ON  r.prev_1 = a.prev_1
    AND r.prev_2 = a.prev_2
    AND r.prev_3 = a.prev_3
    AND r.prev_4 = a.prev_4
    AND r.prev_5 = a.prev_5
WHERE 
    r.stat_id != 3
    AND a.admin_name = 'admin3'

逻辑说明

通过内连接一次性关联两张业务表,将5个prev字段全相等作为关联条件,同时完成stat_id≠3和指定管理员的过滤,逻辑清晰且执行效率更高。如果确实需要保留prev字段等于1的限制,可在WHERE子句中补充对应条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:24:00