SQL परिप्रेक्ष्य से उदाहरण क्वेरी, चुनिंदा खंड के अंदर "सहसंबद्ध सबक्वेरी" का उपयोग कर रही है और अक्सर यह क्वेरी बनाने का एक बहुत ही अक्षम तरीका है।
SELECT ParentTable.*, (SELECT MAX(ChildTable.NumberField)
FROM ChildTable
WHERE ChildTable.FK_Id = ParentTable.Id)
FROM ParentTable
हालांकि यह पहली नज़र में अधिक जटिल और इसलिए कम कुशल प्रतीत हो सकता है, प्रदर्शन के लिए आम तौर पर एक चुनिंदा खंड में "सहसंबद्ध उपश्रेणियों" से बचने के लिए बेहतर होता है और इसके बजाय "व्युत्पन्न तालिका" का उपयोग करके प्रतिस्थापित किया जाता है:
SELECT ParentTable.*,c.MxNum
FROM ParentTable
LEFT JOIN (
SELECT ChildTable.FK_Id, MAX(ChildTable.NumberField) as MxNum FROM ChildTable
GROUP BY ChildTable.FK_Id
) AS c ON c.FK_Id = ParentTable.Id
ध्यान दें, एक चयनित खंड के साथ एक सहसंबद्ध उपश्रेणी NULL लौटा सकती है, और इसके कारण, यदि उन्हें एक व्युत्पन्न तालिका के साथ प्रतिस्थापित किया जाता है, तो समतुल्य जुड़ाव प्रकार एक LEFT OUTER JOIN (या बस LEFT JOIN) होता है क्योंकि यह एक NULL परिणाम की भी अनुमति देता है। हालांकि यदि आपको कॉलम के लिए NULLs की आवश्यकता नहीं है, तो इसके बजाय अधिक कुशल INNER JOIN का उपयोग करें।
Yii2 सिंटैक्स को नहीं जानने के लिए अग्रिम क्षमायाचना, लेकिन एक प्रभावी वैकल्पिक दृष्टिकोण को जानना प्रासंगिक लगता है जो समस्या को हल करने में सहायता कर सकता है।