Laravel Query Constructor эффективно обрабатывает Subqueries
]] при использовании Eloquent Orm для извлечения данных из подразделений, разработчики часто используют tosql ()
и собственные запросы в комбинации. Хотя этот метод эффективен, он недостаточно понятен. Вот более эффективное решение:
, например, для извлечения количества результатов из следующего подразделения:
]SELECT COUNT(*)
FROM (
SELECT *
FROM abc
GROUP BY col1
) AS a;
Laravel позволяет нам объединять собственные запросы в красноречивые запросы с использованием mergebindings
. Во -первых, мы создаем экземпляр красноречивого строителя для подразделения:
$sub = Abc::where(..)->groupBy(..);
Затем мы используем db :: table
для создания новой таблицы, которая ссылается на подраздел и вручную устанавливает соответствующее привязку:
$count = DB::table( DB::raw("({$sub->toSql()}) as sub") )
->mergeBindings($sub->getQuery()) // 获取底层查询构造器
->count();
Этот подход гарантирует, что правильная привязка применяется к объединенному запросу, что приводит к результату, который мы хотим без ручного выполнения строковых операций.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3