请帮我写一下查询
我有2个表:“项目”和“债务”
“债务”表有
id | project_id | currency_list | total
1 | 1 | 1 | 1000
2 | 1 | 2 | 500
3 | 2 | 1 | 1000
4 | 2 | 2 | 500
...
我需要编写查询以从项目中获取1000行,并将所有“total”与group by“currency_list”相加
非常感谢:)
答案 0 :(得分:3)
嘿,我试过你的希望工作:) 首先你应该有桌子的两个模型 在您的项目模型中调用
public function debts(){
return $this->hasMany('App\Debt','project_id')->selectRaw('debts.*,sum(total) as sum')->groupBy('currency_list');
}
并在您的控制器中调用它
$projects = Project::with('debts')->get()->toArray();
将 dd($ projects)检查为数组
编辑:在控制器功能中使用它
$projects = DB::table('projects')
->join('debts', 'projects.id', '=', 'debts.projects_id')
->select('projects.*','debts.*', DB::raw('sum(total) as sum'))
->groupBy('currency_list')
->get();
然后在您的视图中使用
@foreach($projects as $project)
{
{{$project->sum}}
}
答案 1 :(得分:0)
你可以试试这个
应用/项目
public function getDebts()
{
return $this->hasMany('App\Debt');
}
控制器
use App\Project;
public function getProjects(Project $project )
{
$all = $project->with(['getDebts'=>function($query){
$query->selectRaw('*,sum(total) as sum')
->groupBy('currency_list');
}])->take(1000);
}