मैं निम्नलिखित का प्रयास करूंगा:
सबसे पहले, सुनिश्चित करें कि निम्न तालिकाओं और स्तंभों पर अनुक्रमणिका हैं (कोष्ठक में स्तंभों का प्रत्येक सेट एक अलग अनुक्रमणिका होना चाहिए):
table1 : (subscribe, CDate)
(CU_id)
table2 : (O_cid)
(O_ref)
table3 : (I_oref)
(I_pid)
table4 : (P_id)
(P_cat)
table5 : (C_id, store)
दूसरा, अगर उपरोक्त अनुक्रमणिका जोड़ने से आप जितना चाहें उतना सुधार नहीं कर पाए, क्वेरी को इस रूप में फिर से लिखने का प्रयास करें
SELECT DISTINCT t1.first_name, t1.last_name, t1.email FROM
(SELECT CU_id, t1.first_name, t1.last_name, t1.email
FROM table1
WHERE subscribe = 1 AND
CDate >= $startDate AND
CDate <= $endDate) AS t1
INNER JOIN table2 AS t2
ON t1.CU_id = t2.O_cid
INNER JOIN table3 AS t3
ON t2.O_ref = t3.I_oref
INNER JOIN table4 AS t4
ON t3.I_pid = t4.P_id
INNER JOIN (SELECT C_id FROM table5 WHERE store = 2) AS t5
ON t4.P_cat = t5.C_id
मैं यहां उम्मीद कर रहा हूं कि पहले उप-चयन में शामिल होने के लिए विचार की जाने वाली पंक्तियों की संख्या में काफी कमी आएगी, उम्मीद है कि बाद में जुड़ने से कम काम होगा। तालिका 5 पर दूसरे उप-चयन के पीछे तर्क के लिए।
किसी भी मामले में, इसके साथ खिलवाड़ करें। मेरा मतलब है, आखिरकार यह सिर्फ एक चयन है - आप वास्तव में इसके साथ कुछ भी चोट नहीं पहुंचा सकते हैं। प्रत्येक भिन्न क्रमपरिवर्तन द्वारा उत्पन्न योजनाओं की जाँच करें और यह पता लगाने का प्रयास करें कि प्रत्येक के बारे में क्या अच्छा या बुरा है।
साझा करें और आनंद लें।