在不动表结构的情况下还能优化该SQL吗(效率太低了)

SELECT DISTINCT
    GROUP_CONCAT(
        DISTINCT pch.erpContractNumber
    ) AS fbk22,
    poh.*, IFNULL(eei.shortName, eei.fullName) AS companyShortName,
    GROUP_CONCAT(DISTINCT poi.fbk7) AS materialNumber
FROM
    purchase_order_header poh
LEFT JOIN purchase_order_item poi ON poh.purchaseOrderNumber = poi.purchaseOrderNumber
AND poh.elsAccount = poi.elsAccount
LEFT JOIN els_enterprise_info eei ON eei.elsAccount = poh.toElsAccount
LEFT JOIN purchase_contract_head pch ON pch.elsAccount = poh.elsAccount
AND poh.purchaseOrderNumber = pch.erpContractNumber
AND pch.fbk15 = '1'
WHERE
    poh.elsAccount = '120000'
AND poh.orderStatus IN ("0","1","2","3","4","5","6","7")
AND poh.orderSendStatus IN ("0")
GROUP BY
    poh.purchaseOrderNumber
ORDER BY
    poh.logtime DESC,
    poh.purchaseOrderNumber DESC
阅读 2.4k
1 个回答

联表查询尽量少用

in 也很吃资源 少用

不动表结构的话优化起来很困难啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题