एकदम नया तरीका। आपका where
कंडीशन दो टेबल पर है, लेकिन यह अनावश्यक लगता है।
पहला बदलाव होगा:
where a1_.id = 1136 or a1_.parent_id = 1136
मुझे लगता है कि आप जो संरचना चाहते हैं वह श्रेणी तालिका पर एक स्कैन है और फिर विज्ञापन तालिका से प्राप्त होती है। मदद के लिए, आप advert(advert_category_id, created_date)
पर एक इंडेक्स बना सकते हैं ।
मैं where
. ले जाकर क्वेरी लिखने का लुत्फ उठाऊंगा एक उपश्रेणी में खंड। मुझे नहीं पता कि यह प्रदर्शन को प्रभावित करेगा या नहीं:
SELECT a0_.id AS id0
FROM advert a0_ INNER JOIN
(select ac.*
from advertcategory ac
where ac.id = 1136 or ac.parent_id = 1136
) ac
ON a0_.advert_category_id = ac.id
ORDER BY a0_.created_date DESC
LIMIT 15;