2015-11-26 16 views
6

में किसी अन्य तालिका में मौजूद नहीं होने वाली एक तालिका से सभी रिकॉर्ड्स का चयन करें, मैं एक तालिका से सभी रिकॉर्ड्स प्राप्त करना चाहता हूं जो लैरवेल 5.1 में अन्य तालिका में मौजूद नहीं हैं।लैरवेल 5.1

मैं कैसे कोर php में यह करने के लिए पता है, और यह निम्नलिखित कोड

SELECT t1.name 
FROM table1 t1 
LEFT JOIN table2 t2 ON t2.name = t1.name 
WHERE t2.name IS NULL 

मॉडल

public function audiences() 
{ 
return $this->belongsTo('App\BridalRequest', 'request_id'); 
} 

साथ ठीक काम करता है लेकिन Laravel में भी ऐसा ही करने की कोशिश जब मैं निम्नलिखित कोड का उपयोग करके,

$all_bridal_requests_check = \DB::table('bridal_requests') 
        ->where(function($query) 
        { 
         $query->where('publisher', '=', 'bq-quotes.sb.com') 
           ->orWhere('publisher', '=', 'bq-wd.com-bsf'); 
        }) 
        ->whereNotIn('id', function($query) { $query->table('audiences')->select('request_id'); }) 
        ->orderBy('created_on', 'desc') 
        ->get(); 

तो यह मुझे इस एर देता है ROR

अपरिभाषित विधि रोशन \ डाटाबेस के लिए कॉल \ क्वेरी \ बिल्डर :: तालिका()

+1

क्या आपने मॉडल कक्षा में रिश्ते को परिभाषित किया था? – Saani

+0

@ सनी हां मैंने किया .. –

+0

क्या आप मॉडल क्लास कोड प्रदान कर सकते हैं? – Saani

उत्तर

9

ऊपर उल्लेख क्वेरी निम्नलिखित तरीके से laravel क्वेरी बिल्डर का उपयोग करके बनाया जा सकता है।

SELECT t1.name 
FROM table1 t1 
LEFT JOIN table2 t2 ON t2.name = t1.name 
WHERE t2.name IS NULL 

यह लैरवेल के क्वेरी बिल्डर का उपयोग करके निर्मित क्वेरी के बराबर है।

\DB::table('table1 AS t1') 
->select('t1.name') 
->leftJoin('table2 AS t2','t2.name','=','t1.name') 
->whereNull('t2.name')->get(); 
संबंधित मुद्दे