Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Laravel 5.2 - Kiri Bergabung dengan DB ::Mentah tidak berfungsi?

leftJoin fungsi dideklarasikan seperti ini:

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

Anda ingin meneruskan fungsi mentah Anda sebagai kolom kedua:

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');

Saran find_in_set berasal dari di sini .

Saya tidak yakin apa '$.locationId' adalah, tetapi jika itu adalah variabel, Anda dapat meneruskannya sebagai parameter dalam larik sebagai parameter kedua pada DB::raw() fungsi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbedaan antara di mana dan dan klausa dalam kueri sql bergabung

  2. MySQL Nilai default tidak valid untuk stempel waktu ketika tidak ada nilai default yang diberikan.

  3. Validasi Data MySQL saat Penyisipan

  4. MySQL:Bisakah Anda menentukan batas acak?

  5. Mencoba 'memanggil' prosedur tersimpan dengan CodeIgniter