Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Laravel 5.2 - लेफ्ट जॉइन डीबी ::रॉ काम नहीं कर रहा है?

leftJoin फ़ंक्शन इस तरह घोषित किया गया है:

 public function leftJoin($table, $first, $operator = null, $second = null)

आप अपने कच्चे कार्यों को दूसरे कॉलम के रूप में पास करना चाहते हैं:

return $this->model->from('alerts as a')
                   ->leftJoin('locations AS l', 'l.id', '=', DB::Raw("JSON_UNQUOTE(JSON_EXTRACT(a.criteria, '$.locationId'))"))
                   ->leftJoin('industries as i', function($join){
                        $join->on(DB::raw("find_in_set(i.id, JSON_UNQUOTE(JSON_EXTRACT(a.criteria,  '$.industries')))",DB::raw(''),DB::raw(''))); 
                   })

                   ->where('user_id', '=', $userId)
                   ->selectRaw("a.id
                             , a.name
                             , a.criteria
                             , GROUP_CONCAT(DISTINCT(i.name) SEPARATOR ', ') as 'Industries'")
                   ->groupBy('a.id')
                   ->orderBy('a.created_at', 'desc');

Find_in_set सुझाव यहां .

मुझे यकीन नहीं है कि क्या '$.locationId' है, लेकिन यदि यह एक चर है, तो आप इसे एक सरणी के भीतर पैरामीटर के रूप में DB::raw() पर दूसरे पैरामीटर के रूप में पास कर सकते हैं समारोह।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पायथन MySQL विशेष पात्रों से बचता है

  2. MySQL में सबस्ट्रिंग_इंडेक्स फ़ंक्शन के बराबर SQL सर्वर

  3. एक विशिष्ट ग्राहक का चयन कैसे करें?

  4. 'jdbc:mysql://localhost:3306/mysql . के लिए कोई उपयुक्त ड्राइवर नहीं मिला

  5. MySql:एक पंक्ति डालें और सामग्री प्राप्त करें