अधिक जटिल जॉइन क्वेरी बनाने के लिए आप कॉलबैक का उपयोग कर सकते हैं।
->leftJoin(TBL_CAT, function($query){
$query->on(TBL_CAT.'id', '=', 'p.cat_id')->where("**", "**", "**");
})
यहाँ लार्वा डॉक पर लिंक है - https://laravel.com/docs/5.4/queries# जुड़ता है "उन्नत शामिल हों खंड" अनुभाग।
UPD::जैसा कि टिप्पणी में बताया गया है, इस तरह के डेटा के लिए स्ट्रिंग रखना अच्छा नहीं है। स्ट्रिंग चेक की तुलना में समानता द्वारा खोज बहुत सरल होनी चाहिए। यहां तक कि अगर आपके डेटा की मात्रा में बड़ा अंतर नहीं होना चाहिए, तो आप कभी नहीं जानते कि भविष्य में आपके ऐप के साथ क्या होगा।
लेकिन अगर आप अभी भी ऐसा करना चाहते हैं तो मुझे लगता है कि आप इस तरह कोशिश कर सकते हैं
->leftJoin(TBL_CAT, function($query){
$query->where(DB::raw("FIND_IN_SET(".TBL_CAT.".id, p.cat_id)"), "<>", "0");
})
शामिल हों जो cat_id में आईडी के अस्तित्व की जांच करेगा।