«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно выбрать из подразделений, используя строитель запросов Laravel?

Как я могу эффективно выбрать из подразделений, используя строитель запросов Laravel?

Опубликовано в 2025-03-23
Просматривать:124

How Can I Efficiently Select from Subqueries Using Laravel's Query Builder?

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