-2
我有一個大的查詢是加入3個表,並有兩個子查詢我想優化它。我正在考慮抽取子查詢來隔離查詢,但爲此我必須使用額外的for循環,並且必須在內部運行查詢for循環n次。有沒有更好的方法來查找數據?想優化我的解決方案。請給我提供很好的解決方案/建議優化mysql查詢使用兩個子查詢,並有3個表的左連接需要更好的解決方案
以下是我的查詢。
SELECT `e`.`id`
,(SELECT sum(sl.amount)
FROM `sales` AS `sl`
LEFT JOIN `trans` AS `t` ON t.id = sl.transId
WHERE (sl.entity_id = e.id)
AND (DATE_FORMAT(t.accounting_date, '%Y-%m')) = '2015-02') AS `2015-02`
,(SELECT sum(sl.amount)
FROM `sales` AS `sl`
LEFT JOIN `trans` AS `t` ON t.id = sl.transId
WHERE (sl.entity_id = e.id)
AND (DATE_FORMAT(t.accounting_date, '%Y-%m'))) AS `2015-01`
,`e`.`forenames`
, `e`.`surname`
, `e`.`company_name`
, `e`.`address1`
,`e`.`address2`
, `e`.`phone1`
,`e`.`postcode`
, eassoc.associated_entity_id IS NULL AS `is_parent`
,`ent`.`accountPersonManager`
FROM `entity` AS `e`
LEFT JOIN `entity_link` AS `eassoc` ON eassoc.linkentity_id = e.id
LEFT JOIN `entities` AS `ent` ON ent.entity_id = e.id
WHERE (e.archived = 0
OR e.archived IS NULL)
GROUP BY `e`.`id`
ORDER BY `2015-02` DESC LIMIT 75
而你的問題是? – 2015-03-31 14:18:36
我想找到連擊方式來獲得結果數據 – 2015-03-31 14:42:42
這是一個陳述,而不是一個問題。定義「更好」。 – 2015-03-31 14:53:34