Mysql 如何对Laravel 5.6中的两列求和
我有一个SQL查询,我想把它转换成雄辩的。 我的问题是,我知道它是有效的:Mysql 如何对Laravel 5.6中的两列求和,mysql,laravel-5,eloquent,Mysql,Laravel 5,Eloquent,我有一个SQL查询,我想把它转换成雄辩的。 我的问题是,我知道它是有效的: SELECT DISTICT(excavatorId), SUM(times_loaded), SUM(litres) FROM daily GROUP BY excavatorId; 并返回以下结果: +-------------+-------------------+-------------+ | excavatorId | sum(times_loaded) | sum(litres) | +--------
SELECT DISTICT(excavatorId), SUM(times_loaded), SUM(litres) FROM daily GROUP BY excavatorId;
并返回以下结果:
+-------------+-------------------+-------------+
| excavatorId | sum(times_loaded) | sum(litres) |
+-------------+-------------------+-------------+
| 55 | 179 | 168 |
| 60 | 50 | 50 |
+-------------+-------------------+-------------+
现在,在拉雷维尔,我尝试以下方法:
$result = DB::table('daily as d')
->select([
'excavatorId',
'times_loaded',
'litres'
])
->groupBy('excavatorId')
->where('date', $request->input('date'))
->sum('d.times_loaded', 'd.litres');
此查询仅返回值为“179”的字符串。
在Laravel中执行此操作并获得SQL查询结果的正确方法是什么 使用DB::raw()进行数据库操作,而不检索所有数据
$result = DB::table('daily')
->select([
'excavatorId',
DB::raw("SUM(times_loaded) as total_times_loaded"),
DB::raw("SUM(litres) as total_liters"),
])
->groupBy('excavatorId')
->where('date', $request->input('date'))
->get();
您不需要每天使用作为d
,因为您没有连接两个表,因此可能需要一个表引用
请找到参考资料太好了!非常感谢。但奇怪的是,这会返回以下内容:[{“挖掘机ID”:55,“总装载次数”:0,“总装载量”:0},{“挖掘机ID”:60,“总装载次数”:0,“总装载量”:0}]这些零很奇怪,我知道了。我必须删除SUM括号内的字符,比如:DB::raw(“SUM(times_-loaded)作为total_-times_-loaded”),而不是DB::raw(“SUM('times_-loaded')作为total_-times_-loaded”),好的,我会相应地编辑答案,以备将来参考