【发布时间】:2020-08-18 12:57:05
【问题描述】:
我有campaign_report这样的表
Schema::create('campaign_report', function (Blueprint $table) {
$table->bigIncrements('id');
$table->date('report_date');
$table->bigInteger('user_id');
$table->bigInteger('campaignId');
$table->double('cost',12,2);
$table->timestamps();
});
我正在尝试获取昨天的所有活动报告。
$campaignReports = CampaignReport::where(['report_date' => "$yesterday", 'user_id' => Auth::user()->id])->orderBy('report_date', 'desc')->paginate(25);
以上查询返回所有 report_date 等于 $yesterday 的广告系列。
除了这个查询,我还想获取每个活动的cost 值,其中report_date 是前天匹配campaignId 列。我想显示昨天的广告系列和前天的广告系列之间cost 的区别。
喜欢
foreach($campaignReports as $campaignReport)
{
$difference = $campaignReport->cost - $campaignReport->dayBeforeYesterdayCost;
}
谁能帮助我使用 Query Builder 或 Eloquent 构建这个查询?
【问题讨论】:
-
写两个查询得到昨天的成本和前天的成本并相减有什么问题?
-
非常感谢您的评论。是的,我可以在 foreach 循环中进行另一个查询来查询 costDayBeforeYesterday。但我是在单个查询中考虑的。
标签: php mysql laravel laravel-6 laravel-query-builder