MySQL optimize complicate query NOT IN (2 SELECT WITH JOIN) WHERE -


मेरे पास निम्न प्रश्न हैं:

  चुनें driver_id, first_name, last_name ड्राइवरों से WHERE driver_id नहीं (waybills से अलग w.driver_id चयन डब्ल्यू ड्राइवरों में शामिल हों डी पर d.driver_id = w.driver_id कहां w.waybill_owner = 1 और w.waybill_status = 'भेजा' और w.delivery_date = '2014-10-28') और नहीं driver_id और स्थिति = 'सक्रिय' और driver_owner (waybill_movements wm शामिल हों ड्राइवरों पर d से d.driver_id = wm.driver_id कहां wm.movement_owner = 1 और wm.delivery_date = '2014-10-28' DISTINCT wm.driver_id का चयन करें) = 1 ORDER द्वारा last_name एएससी  

मैं इस क्वेरी को कैसे अनुकूलित कर सकता हूं?

प्रश्न अच्छी तरह से काम करता है और अपेक्षित परिणाम वापस करता है लेकिन मेरा प्रश्न यह है कि क्वेरी को अनुकूलित किया जा सकता है। / P>

आपके समय और सहायता के लिए बहुत धन्यवाद।

अपडेट:

और, हाँ, मेरे पास ये है अनुक्रमणिका:

waybills (waybill_owner, waybill_status, w.delivery_date) waybill_movements (wm.movement_owner, delivery_date) ड्राइवरों (प्राथमिक कुंजी और ड्राइवरों (स्थिति, driver_owner driver_id)

तालिका संरचना इसकी आवश्यकता अनुकूलन के लिए नहीं है

मुझे बहुत सारे जवाब होने की उम्मीद नहीं थी आप सभी को धन्यवाद।

मैंने आमतौर पर यह पाया है कि बाएं भाग लेना और नल की तलाश है तालिका का परिणाम आसान और इंडेक्सों का भी बहुत अच्छा उपयोग होता है जो कि बनाया जा सकता है।

  ड्राइवरों की तालिका में मेरे पास एक इंडेक्स (driver_owner, status, driver_id) होगा, आपके मार्गबील तालिका, इंडेक्स ऑन ( पर (movement_owner, driver_id, delivery_date) का चयन करें d1.driver_id, d1.first_name, d1.last_name से ड्राइवरों d1 बायाँ शामिल हों waybills w पर d1.driver_id = w.driver_id और d1.driver_owner waybill_owner, driver_id, delivery_date, waybill_status) waybill_movements, सूचकांक = w.waybill_owner और w.waybill_status = 'भेजा' और w.delivery_date = '2014-10-28' वाम शामिल हों waybill_movements wm पर d1.driver_id = wm.driver_id और d1.driver_owner = wm.movement_owner और wm.delivery_date = ' 2014-10-28 'जहां d1.driver_owner = 1 और d1.status = 'सक्रिय' और w.driver_ID शून्य और wm.driver_id है द्वारा d1.last_name एएससी शून्य आदेश है  

सहित के लिए "शून्य है" के द्वारा मार्गबंद और मार्गबध्दताएं, आप केवल उन्हीं को प्राप्त कर रहे हैं जिनके पास मेल खाने वाला रिकॉर्ड नहीं है।

इसके अलावा, अपना रास्ता-बिन्दु = 1 देख रहा है ... यह है कि driver_owner = 1 की भी संयोग है? अगर रास्ता मालिक के मालिक को हमेशा ड्राइवर मालिक के रूप में होना चाहिए, तो मैं मार्गबिल तालिका पर पहले रास्ता तय करना होगा, पहले driver_id, फिर बाकी और joins को drivers.driver_owner = waybills के आधार पर परिवर्तित करना चाहिए। वैसेबिल_वर (वैसेबिल_मवॉवमेंट्स पर इसी तरह)

प्रति प्रतिक्रिया संशोधित

अनुक्रमित और उसी ड्रायवर के आधार पर शामिल होने के लिए क्वेरी


Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -