0
我有下面的代碼工作:結合在MySQL 2個SUMS和優化查詢
SELECT admin_teams.name,
SUM(temp_orders.amount_paid) as amount,
SUM(instalments.amount) as amount2
FROM temp_orders
LEFT JOIN admin_teams
ON admin_teams.id = temp_orders.team
LEFT JOIN instalments
ON instalments.order_id = temp_orders.order_id
WHERE
(DATE(temp_orders.date_paid) = CURDATE()
OR DATE(instalments.date_paid) = CURDATE())
AND (temp_orders.pay_status = 4
OR instalments.pay_status = 4)
GROUP BY temp_orders.team
ORDER BY temp_orders.team ASC
LIMIT 5
它產生一個表,看起來像:
+-------------+--------+---------+
| name | amount | amount2 |
+-------------+--------+---------+
| team name 1 | 100 | 150 |
| team name 2 | 200 | 250 |
| team name 3 | 300 | 175 |
+-------------+--------+---------+
我有兩個問題;
- 我實際上只想要一個是金額和金額2的總和。
- 查詢非常慢 - 這需要190秒才能運行。
我確實有它幾乎與聯盟這幾乎是即時的工作 - 我不能然而讓它完全工作,因爲列在我的第一個SELECT語句的數量不會匹配在第二 - 表「分期付款「沒有團隊列,但表temp_orders可以。
任何人都可以幫助解決這兩個問題嗎?
謝謝。
把一個'EXPLAIN'查詢之前和運行it.Edit的結果 – Mihai 2015-01-09 19:55:54
一個朋友建議這但顯然服務器沒有建立你的問題解釋(我不明白爲什麼,顯然有些東西沒有安裝或沒有更新),我沒有訪問權限或知識來更新它。 – James 2015-01-09 19:59:00
我從來沒有聽說過這樣的事情,EXPLAIN自帶mysql,沒有什麼需要更新 – Mihai 2015-01-09 20:03:53