mysql - 优化mysql的查询
问题描述
在当前场景中,我的数据库存储每个用户订单项目,其中一个订单有多个项目,所有项目将具有相同的 orderNumber。我对mysql没有太多经验。但我修改了默认搜索查询以通过 auditTimestamp 获取订单。由于用户可以编辑订单项目,这将更新单个产品的 auditTimestamp。
我之前创建了一个内部查询来迭代所有订单,然后按它们分组,然后使用 MAX 函数获取最新的 auditTimestamp。目前我需要优化它。下面是示例。我需要优化内部连接的地方。
select
distinct ORDER.ORDERID
,ORDER.ORDERNUMBER
,ORDER.CREATIONDATE
,ORDER.STATUS
,ORDER.AUDITTIMESTAMP
,ORDER.USERID
,ORDER.SEQ
,maxaudit.maxaudittimestamp as maxaudittimestamp
from
ORDER as ORD
INNER JOIN (select
ORDER.ORDERID
,ORDER.ORDERNUMBER
,ORDER.CREATIONDATE
,ORDER.STATUS
,ORDER.AUDITTIMESTAMP
,ORDER.USERID
,ORDER.SEQ
,MAX(ORD1.AUDITTIMESTAMP) maxaudittimestamp
from
ORDER ORD1
where
ORD1.USERID = 1 AND
ORD1.STATUS IN ('Active'
,'CANCELLED'
,'OUT FOR DELIVERY'
,'Void')
GROUP BY
ORD1.ORDERNUMBER) maxaudit
on maxaudit.ORDERID = ORD.ORDERID
WHERE
WAR.ORDERID = 1) ORRDATA
WHERE 1 = 1 AND
,ORDER.SEQ = 1
ORDER BY
ORRDATA.maxaudittimestamp DESC;
结果我需要按用户获取所有订单并首先按最新排序。但其 seq = 1 的主顺序,状态应为 'Active' ,'CANCELLED' ,'OUT FOR DELIVERY' ,'Void'
更换所需的优化
解决方案
推荐阅读
- javascript - Firestore 安全规则 - 创建时,检查属性不在另一个文档中
- mysql - group_concat 过滤器价格
- r - R:for循环遍历不同权重的回归模型并保存模型名称
- angular - Angular 2,在@Component 样式中使用变量
- excel - 将员工划分为具有以下/以上规则的工作家庭
- java - 从 Firebase 实时数据库获取密钥参考
- azure-service-fabric - 转换 app.config Service Fabric 来宾可执行文件
- visual-studio - OpenSSL SSL_connect: SSL_ERROR_SYSCALL VS2017 Community / TFS
- node.js - 回调问题设置变量节点
- python - 流程重复 3 次后响应异常