当前位置:   article > 正文

mysql 子查询group by,mysql in 子查询中group by数据不准确记录

mysql group by in

(1).查询出现问题的sql:SELECT *  FROM

hqjf_express_trace_items  WHERE

trace_id in(

SELECT

trace_id

FROM

hqjf_express_trace

WHERE

(STATUS = 1 OR receipt_time > 0 ) AND  trace_id>0   AND type<>''

GROUP BY type

)

问题点:子查询中单独查询的结果trace_id(3,2,9,1,91,5,7,80),整个SQL查询出的结果多出了trace_id(8)

(2).正确的写法:SELECT *  FROM

hqjf_express_trace_items  WHERE

trace_id in(

SELECT

max(trace_id)

FROM

hqjf_express_trace

WHERE

(STATUS = 1 OR receipt_time > 0 ) AND  trace_id>0   AND type<>''

GROUP BY type

)

当我们使用group by时进行select字段,字段要么是group by的字段,要么对其他字段进行聚合处理,否则在子查询中会出现问题。另外建议使用sql严格模式,会直接报错,养成良好的习惯。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/959575
推荐阅读
相关标签
  

闽ICP备14008679号