首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向db查询中添加其他信息

向db查询中添加其他信息
EN

Stack Overflow用户
提问于 2017-01-19 13:46:37
回答 1查看 37关注 0票数 0

我有下面的代码。

代码语言:javascript
复制
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();

这个很好用。它返回以下内容。

代码语言:javascript
复制
[
  {
    "Project": "Mose Kuvalis",
    "StatusCode": "Dr. Ava Mraz",
    "no_of_plates": 5
  }
]

虽然我还剩下大约10个板块,没有,但它没有附加任何项目或状态代码(因此基本上为null值)。我可以在同一个查询(相同的json)中使用这个吗??并返回这样的东西(但不一定是一样的)

代码语言:javascript
复制
[
  {
    "Project": "Mose Kuvalis",
    "StatusCode": "Dr. Ava Mraz",
    "no_of_plates": 5
  },
  {
    "Project": NULL,
    "StatusCode": NULL,
    "no_of_plates": 10 // or some other number
  },
]

耽误您时间,实在对不起!

根据建议,我更新了查询,但仍然返回相同的结果。

代码语言:javascript
复制
      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();
EN

回答 1

Stack Overflow用户

发布于 2017-01-19 13:58:39

您应该在select中尝试使用DB::raw(),并对每个select字段使用IFNULL。

IFNULL示例:

代码语言:javascript
复制
IFNULL(projects.name, NULL) AS Project
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41743344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档