Как получить результаты из & quot; Таблицы & quot; только если значение существует более 1 раза в «таблице B» — Ларавел

Я делаю отношения между 2 таблицами

Report and Order_items

public function items()
{
return $this->hasMany('App\Models\Order_item', 'waybill_number', 'csv_waybill_number');
}

Вот самая короткая часть запроса, которая работает, но очень медленно!
Если я использую limit ($ perPage) -> get () вместо paginate ($ perPage), результаты будут намного быстрее, почему-то paginate () замедляется из-за -> has (), если я удаляю его из запроса, работает для 1-2 секунды иначе больше минуты …

$perPage = 45;
$pagination = Report::with(['items'  =>  function($q){
$q->select(['order_items.waybill_number', 'order_items.item_number']);
}])->with(['items'  =>  function($q){
$q->select(['order_items.waybill_number', 'order_items.item_number']);
}])->has('items','>', 1)
->join('order_items','order_items.waybill_number','=','globeflight_report.csv_waybill_number');

$pagination = $pagination->paginate($perPage)

Я пытаюсь не использовать -> has () и делать подзапрос с Имея внутри как:

->with(['items'  =>  function($q){
$q->select(['order_items.waybill_number', 'order_items.item_number']);
$q->having(DB::raw('COUNT(waybill_number)'),">", "1");

}])

Что бы я ни пытался вместо -> has () не работает, очевидно, я делаю это неправильно. Я считаю, что если я использую что-то еще, то все будет хорошо с paginate ()

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]