Я получаю запрос sql следующим образом:
выберите * из geofilter_activations
, где не существует (выберите * из snap_submissions
, где geofilter_activations
. purchase_id
= snap_submissions
.purchase_id
) и status
= 0 и created_at
<2018-10-10 07:15:42 порядок по <code>id desc limit 1
Но что случилось с запросом, который я добавилОткуда подписка?Это не приходит в выводе запроса.Дайте мне способ оптимизировать запрос и заставить его работать.
$time_before = '10';
$dt = Carbon::now();
$activation = GeofilterActivation::doesntHave('submission_data')
->where('status', '0')
->where('created_at', '<', $dt->subMinutes($time_before)->toDateTimeString())
->OrderBy('id','desc')
->first();
$activation->load(['purchase' => function ($query) {
$query->whereNotNull('subscription_id');
}]);
А модель GeoFilterActivation:
<?php
namespace App\Models\Geofilter;
use Illuminate\Database\Eloquent\Model;
class GeofilterActivation extends Model
{
public function purchase(){
return $this->belongsTo('App\Models\Geofilter\GeofilterPurchase', 'purchase_id');
}
public function submission_data(){
return $this->belongsTo('App\Models\Geofilter\SnapSubmission', 'purchase_id', 'purchase_id');
}
public function ad_stat(){
return $this->belongsTo('App\Models\Geofilter\SnapAdStat', 'purchase_id', 'purchase_id');
}
public function currency(){
return $this->belongsTo('App\Models\Currency', 'currency_code', 'code');
}
}