आपकी शर्तें LEFT JOIN ... ON क्लॉज का हिस्सा होनी चाहिए।
$q = $this->createQuery('c')
->leftJoin('c.stJob j WITH j.expires_at > ? AND j.is_activated = 1 AND j.is_public = 1', date('Y-m-d h:i:s', time()))
->addOrderBy('c.name');
शर्तों को ON
में डालना खंड (WHERE
. के विपरीत ) इंगित करता है कि वे विशेष रूप से JOIN
. पर लागू होते हैं . यदि कोई पंक्ति उन शर्तों को पूरा नहीं करती है, तो कोई जुड़ाव नहीं है - और इस मामले में आप यही चाहते हैं। उन्हें WHERE
. में डालना इंगित करता है कि परिणाम पंक्तियों को उन शर्तों को पूरा करना चाहिए। और जाहिर तौर पर अगर कोई जॉइन नहीं होता, तो आप किसी को संतुष्ट नहीं कर सकते j
. के बारे में शर्तें टेबल।