Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Laravel 5.2 - Bên trái tham gia DB ::Raw không hoạt động?

leftJoin hàm được khai báo như thế này:

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

Bạn muốn chuyển các hàm thô của mình vào dưới dạng cột thứ hai:

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

Đề xuất find_in_set đến từ tại đây .

Tôi không chắc cái gì '$.locationId' là, nhưng nếu đó là một biến, bạn có thể chuyển nó cùng với một tham số trong một mảng dưới dạng tham số thứ hai trên DB::raw() hàm số.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. truy vấn mysql để biết sinh nhật trong 10 ngày tới

  2. Làm thế nào để truy vấn hàng có giá trị thấp nhất và cũng để biết giá trị của giá trị cao nhất?

  3. Làm cách nào để đặt giá trị mặc định của trường là '0000-00-00 00:00:00'?

  4. Thông báo lỗi Cú pháp MySQL Toán hạng phải chứa 1 (các) cột

  5. Tính toán (tổng, tối đa, trung bình) cột được phân tách bằng dấu phẩy trong mysql