我有下面的代码。
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();发布于 2017-01-19 13:58:39
您应该在select中尝试使用DB::raw(),并对每个select字段使用IFNULL。
IFNULL示例:
IFNULL(projects.name, NULL) AS Projecthttps://stackoverflow.com/questions/41743344
复制相似问题