php - Laravel: MYSQL query in laravel -


i have working query goes

select s.name status, q.name quality, p.name process, count(*)  plates       join equipment_status_codes s on equipment_status_code_id = s.id       join plate_qualities q on plate_quality_id = q.id       join processes p on process_id = p.id project_id in            (select id             projects             name 'spirit')  group s.name, q.name, p.name asc rollup 

this works , returns results fine.

now trying put in laravel syntax, having difficulties.

so thinking along these lines.

  return plate::select('equipment_status_codes.name status', 'plate_qualities.name quality', 'processes.name process')     ->join('equipment_status_codes', 'plates.equipment_status_code_id', '=', 'equipment_status_codes.id')     ->join('plate_qualities', 'plates.plate_quality_id', '=', 'plate_qualities.id')     ->join('processes', 'plates.process_id', '=', 'processes.id')      ->groupby(db::raw('equipment_status_code_id rollup'))      ...     ...     ->get(); 

would out. in advance!

update: @govind samrow

i have tried query. works (with couple of small adjustment) not getting same results 1 when run sql query.

i included screen shots.

so when run sql query.

i following results.

enter image description here

when run laravel query.

  return  db::table('plates')     ->join('equipment_status_codes', 'equipment_status_code_id', '=', 'equipment_status_codes.id')     ->join('plate_qualities', 'plate_quality_id', '=', 'plate_qualities.id')     ->join('processes', 'process_id', '=', 'processes.id')      ->whereraw("project_id in(select id projects name 'spirit')")     ->select(db::raw('equipment_status_codes.name status'), db::raw('ifnull(plate_qualities.name, null) quality'), db::raw('ifnull(processes.name, null) process'), db::raw("count(*) total" ))     ->groupby(db::raw('equipment_status_codes.name rollup', 'plate_qualities.name rollup', 'processes.name rollup', 'asc'))     ->get();   

i following.

enter image description here

almost there, not sure what's going on?! ideas?

use whereraw sub query in clause try this:

db::table('plates')     ->join('equipment_status_codes', 'equipment_status_code_id', '=', 'equipment_status_codes.id')     ->join('plate_qualities', 'plate_quality_id', '=', 'plate_qualities.id')     ->join('processes', 'process_id', '=', 'processes.id')     ->whereraw("project_id in(select id projects name 'spirit')")     ->select('equipment_status_codes.name status', 'plate_qualities.name quality', 'q.name quality', 'processes.name process', db::raw("count(*) total"))     ->groupby(db::raw('equipment_status_codes.name, plate_qualities.name, processes.name asc rollup'))->get(); 

here raw sql result of above got tosql():

select `equipment_status_codes`.`name` `status`, `plate_qualities`.`name` `quality`, `q`.`name` `quality`,  `processes`.`name` `process`, count(*) total `plates`   inner join `equipment_status_codes` on `equipment_status_code_id` = `equipment_status_codes`.`id`   inner join `plate_qualities` on `plate_quality_id` = `plate_qualities`.`id`   inner join `processes` on `process_id` = `processes`.`id`   project_id in(select id projects name 'spirit')  group equipment_status_codes.name, plate_qualities.name, processes.name asc rollup 

note: can use sql output $query->tosql() , compare actual sql query.


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -