我有以下工作代码。
DB::table('plates')
->join('projects', 'plates.project_id', '=', 'projects.id')
->join('equipment_status_codes', 'plates.equipment_status_code_id', '=', 'equipment_status_codes.id')
->select('projects.name AS Project', 'equipment_status_codes.name AS StatusCode', DB::raw('count(plates.id) as no_of_plates'))
->groupBy('plates.project_id', 'plates.equipment_status_code_id')
->get();
这很好用。它返回以下内容。
[
{
"Project": "Mose Kuvalis",
"StatusCode": "Dr. Ava Mraz",
"no_of_plates": 5
}
]
虽然我仍然有10个板块,不附加了任何项目或状态代码(因此基本上为null值)。我可以在同一个查询中使用它(相同的json)??并返回这样的东西(虽然不一定相同)
[
{
"Project": "Mose Kuvalis",
"StatusCode": "Dr. Ava Mraz",
"no_of_plates": 5
},
{
"Project": NULL,
"StatusCode": NULL,
"no_of_plates": 10 // or some other number
},
]
感谢您的时间!
根据建议我更新了查询但仍然返回相同的结果。
return DB::table('plates')
->join('projects', 'plates.project_id', '=', 'projects.id')
->join('equipment_status_codes', 'plates.equipment_status_code_id', '=', 'equipment_status_codes.id')
->select( DB::raw('IFNULL(projects.name, NULL) as Project'), DB::raw('IFNULL(equipment_status_codes.name, NULL) as StatusCode'), DB::raw('count(plates.id) as no_of_plates'))
->groupBy('plates.project_id', 'plates.equipment_status_code_id')
->get();
答案 0 :(得分:0)
您应该在select中尝试C:\Program Files\Java\jdk1.8.0_121\bin
,并且应该为每个选择字段使用IFNULL。
IFNULL例子::
DB::raw()