此問題是在the back of one I asked earlier today。答案我解決了我的問題,通過限制行返回我可以看到它做我想要的。使用LEFT加入和條件加入更有效的SELECT查詢
但是現在,當我試圖運行整個查詢,沒有限制,出口到Excel分析的目的,我似乎無法得到任何地方。我在那個MySQL工作臺上啓動SQL,再次詢問我的密碼,查詢停止運行。我不確定那條信息是否會發生其他事情,以及我真正的問題是什麼:「如果可以,我怎樣才能使查詢運行得更快?」目前運行至少5分鐘,然後「踢我離開」。
當我在這裏解釋的查詢提供了什麼:
1 SIMPLE co ALL 185610 Using temporary; Using filesort
1 SIMPLE my ref PRIMARY PRIMARY 4 bm_emails.co.id 23
1 SIMPLE nvk eq_ref PRIMARY PRIMARY 4 bm_emails.co.id 1
想必臨時表是造成「使用臨時」是一個問題,但我不能確定如何解決它,同時保持我的查詢。 的實際查詢是在這裏:
SELECT
co.email,
nvk.nvk_medium,
CAST(MIN(co.created) AS DATE) AS first_contact,
MIN(CASE WHEN my.my_id = 581 THEN my.data END) AS WA_Created,
MIN(CASE WHEN my.my_id = 3347 THEN my.data END) AS WA_Upgraded
FROM bm_emails.cid208 co
LEFT JOIN bm_emails.my208 my ON co.id = my.eid AND (my_id = 581 OR my_id = 3347)
LEFT JOIN bm_emails.nvk208 nvk ON nvk.eid = co.id
GROUP BY email
Myworkbench是一個很好的一天......在這裏你的SQL看起來很乾淨,但group by子句(nvk.nvk_medium不是彙總或group by子句中的片狀...任何其他數據庫將返回一個錯誤的它),但我看不到影響性能。桌子有多大? – Twelfth 2014-09-24 18:19:59