我的表结构如下
date seller unit price total
05-06-17 abc 14 700 9800
05-06-17 pqr 12 600 7200
05-06-17 abc 10 520 5200
06-06-17 abc 10 600 6000
06-06-17 pqr 15 520 7800
06-06-17 pqr 16 520 8320
我需要像这样获取记录
1) 'date' = '05-06-2017', 'seller' = 'abc', 'total' = '15000'
2) 'date' = '05-06-2017', 'seller' = 'pqr', 'total' = '7200'
3) 'date' = '06-06-2017', 'seller' = 'abc', 'total' = '6000'
4) 'date' = '06-06-2017', 'seller' = 'pqr', 'total' = '16120'
我需要从日期数据库中获取数据。
seller
abc
在date
的表中有两个条目05-06-2017
,因此我需要当天的total
作为seller
abc
以及pqr
相同的东西,所有date
的第二个seller
最佳答案
每当我们需要在最终输出中将具有相同数据的多行合并在一起时,我们就使用 mySQL 的功能按分组。
因此,在您的情况下,您可以使用laravel查询构建器以这种方式进行操作。 DB::table('orders')->select('date', 'seller', DB::raw('SUM(total) as total'))
->groupBy('seller')
->groupBy('date')
->get();
说明DB::select('orders')->select('date', 'seller', DB::raw('SUM(total) as total'))
将查询数据库中的orders
表,然后获取我们提供的列,即date, seller and sum of total column as total
->groupBy('seller')->groupBy('date')
它将在同一日期合并同一卖方的多个记录。->get();
我们将从查询中获取数据。