मैं उप-क्वेरी के रूप में संघ का उपयोग करके एक क्वेरी को अनुकूलित करना चाहता हूं। मैं वास्तव में यह सुनिश्चित नहीं करता कि क्वेरी कैसे बनाएं।उप-प्रश्न के रूप में संघ MySQL
SELECT Parts.id
FROM Parts_Category, Parts
LEFT JOIN Image ON Parts.image_id = Image.id
WHERE
(
(
Parts_Category.category_id = '508' OR
Parts_Category.main_category_id ='508'
) AND
Parts.id = Parts_Category.Parts_id
) AND
Parts.status = 'A'
GROUP BY
Parts.id
मुझे क्या करना चाहते हैं तो नीचे दिए गए संघ के साथ इस ((Parts_Category.category_id = '508' OR Parts_Category.main_category_id ='508')
भाग की जगह है: मैं MYSQL 5
उपयोग कर रहा हूँ यहाँ मूल प्रश्न है। इस तरह मैं ग्रुप बाय क्लॉज को छोड़ सकता हूं और सीधे कॉल इंडेक्स का उपयोग कर सकता हूं जो प्रदर्शन में सुधार करना चाहिए। पार्ट्स और पार्ट्स श्रेणी सारणी में आधे मिलियन रिकॉर्ड होते हैं, इसलिए कोई भी लाभ बहुत अच्छा होगा।
(
SELECT * FROM
(
(SELECT Parts_id FROM Parts_Category WHERE category_id = '508')
UNION
(SELECT Parts_id FROM Parts_Category WHERE main_category_id = '508')
)
as Parts_id
)
किसी को भी मुझे कैसे इसे फिर से लिखने के लिए पर एक सुराग दे सकते हैं? मैंने घंटों तक कोशिश की है लेकिन इसे प्राप्त नहीं कर सकता क्योंकि मैं केवल MySQL के लिए बिल्कुल नया हूं।
धन्यवाद कभी बहुत क्वास्नोई। 62,000 पंक्ति श्रेणी पर FY1 क्वेरी 1 सेकंड तेज हो जाती है! – gus
मुझे लगता है कि आपके दूसरे उदाहरण में मुझे पार्ट्स द्वारा समूह को जोड़ना होगा। क्योंकि मैं डुप्लिकेट नहीं चाहता हूं जहां एक भाग अन्य श्रेणियों में सूचीबद्ध हो। संघ का उपयोग करने के पीछे यही विचार था। मैं वैसे भी प्रदर्शन की तुलना करूंगा। एक बार फिर धन्यवाद। – gus
ग्रुप बाय को दूसरे उदाहरण में जरूरी था और यदि जोड़ा गया तो मुझे एक ही समस्या मिलती है - फाइलॉर्ट और स्पष्टीकरण से अस्थायी का उपयोग करना। – gus