Как преобразовать Below SQL query в Laravel Query? - PullRequest
0 голосов
/ 17 января 2020
SELECT GROUP_CONCAT(
    DISTINCT tb_staff_primary.staff_name 
    ORDER BY tb_staff_primary.staff_name DESC SEPARATOR ',') 
       as staffs,
      tb_subject.subject_name, tb_subject.subject_code 
from tb_subject_allocation,tb_subject,tb_staff_primary,tb_batch 
where tb_subject_allocation.subject_id=tb_subject.subject_id 
  and tb_subject_allocation.staff_id=tb_staff_primary.staff_id 
  and tb_batch.batch_id=1 
GROUP by subject_code

Мне нужно Laravel запрос для этого sql Запрос

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Вы можете написать запрос, используя объекты вашей модели, такие как

$task_list = tb_subject_allocation::join('tb_subject', 'subject_id', 'subject_id')
                            ->join('leads_staff_details', 'leads_staff_details.staff_id', 'tb_staff_primary.staff_id')
                ->where('tb_batch.batch_id', 1)
                ->groupBy('subject_code')
                -select(DB::raw('GROUP_CONCAT(
    DISTINCT tb_staff_primary.staff_name 
    ORDER BY tb_staff_primary.staff_name DESC SEPARATOR ',') 
       as staffs'), tb_subject.subject_name, tb_subject.subject_code )
         or simply by using

DB :: select ("SQL QUery");

0 голосов
/ 17 января 2020

Конечно, есть лучшие способы сделать это в Laravel, но вы можете использовать \ DB :: select

$yourVariable=\DB::select("yourSQLScript");

или использовать \ DB :: raw () для столбца GROUP_CONCAT

$yourVariable=\DB::table('tb_subject_allocation as s1')
    ->join('tb_subject as s2','s1.subject_id','=','s2.subject_id')
    ->join('tb_staff_primary as s3','s1.staff_id','=','s3.staff_id ')
    ->join('tb_batch as s4','s1.batch_id','=','s4.batch_id')
    ->where('s4.batch_id','=','1')
    ->groupBy('subject_code')
    ->select('s2.subject_name','s2.subject_code',
        \DB::raw("GROUP_CONCAT(
               DISTINCT tb_staff_primary.staff_name 
               ORDER BY tb_staff_primary.staff_name DESC SEPARATOR ',') 
               as staffs")
     ->get();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...