(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严格模式,会直接报错,养成良好的习惯。
下面的是商品数据表,id是主键,catename是分类,titile是标题,price是价格,现在要求计算每种分类下的商品平均价格.id catename &n...
例如我们需要查询商品表中每个分类中商品id最大的记录,并且显示商品价格以下是表结构:id catename title &nb...
需求查询出存在商品的商品分类. 先看看分类表:id(分类的id) catename(分类名) 1 手机 2 &n...
1.MyISAM 建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,.frm格式文件,存储表定义;.MYD格式文件,存储数据;MYI格式文件,存储索引;方便数据迁移,我只需将mysql安装目录下data文件中的表文件复制即可完成数据迁移,之前在搬迁多个dedecms中深有体会。 ...
(1).首先我们需要了解limit分页的工作流程demo: SELECT * FROM table LIMIT 10000,5 通常我们会认为以上SQL会从10000条后面取5条,正确的是取出10005条,然后再抛弃前...
项目和第三方系统对接,由于第三方开发人员属于兼职,数据库结构不一致的问题只能我来处理。此处文章用本地模拟演示。数据库资料:1号服务器: 账号root 密码root IP:127.0.0.1 数据库名称:data1 2号服务器...