#php #laravel #datatables #yajra-datatable
#php #laravel #таблицы данных #yajra-datatable
Вопрос:
Я использую Laravel и Laravel DataTable ^ версии 8.0. Добавление skipTotalRecords() с данными в DataTable eloquent builder не работает. Запрос Count все еще выдает результаты. Здесь прилагаются мои скриншоты
Из заводной панели отладки
ВЫБЕРИТЕ count(*) в качестве агрегата ИЗ (ВЫБЕРИТЕ id
, row_no
, customer_id
, income
, posting_date
, (ВЫБЕРИТЕ posting_date
ИЗ final_invoice
WHERE job_id
= job
. id
и final_invoice
. deleted_at
РАВНО НУЛЮ и final_invoice
. company_id
= ‘1’ ПОРЯДОК ПО id
ДЕСКРИПТОРУ LIMIT 1) как invoice_date
, (ВЫБЕРИТЕ SUM(local_amount) в качестве дохода ИЗ finance
WHERE account
= ‘7035500’ и job_no
= job
. row_no
и finance
. deleted_at
РАВНО НУЛЮи finance
. company_id
= ‘1’ ОГРАНИЧЕНИЕ 1) начиная posted_income
С job
WHERE income
> ‘0’ и posting_date
между ‘2021-03-01’ и ‘2021-03-29’ и job
. deleted_at
РАВНО НУЛЮ и job
. company_id
= ‘1’) count_row_table
ВЫБЕРИТЕ id
, row_no
, customer_id
, income
, posting_date
, (ВЫБЕРИТЕ posting_date
ИЗ final_invoice
WHERE job_id
= job
. id
и final_invoice
. deleted_at
РАВНО НУЛЮ и final_invoice
. company_id
= ‘1’ ПОРЯДОК ПО id
ДЕСКРИПТОРУ LIMIT 1) как invoice_date
, (ВЫБЕРИТЕ SUM(local_amount) в качестве дохода ИЗ finance
WHERE account
= ‘7035500’ и job_no
= job
. row_no
и finance
. deleted_at
РАВНО НУЛЮ и finance
. company_id
= ‘1’ LIMIT 1)начиная posted_income
С job
WHERE income
> ‘0’ и posting_date
между ‘2021-03-01’ и ‘2021-03-29’ и job
. deleted_at
РАВНО НУЛЮ и job
. company_id
= ‘1’ ПОРЯДОК ПО id
ПРЕДЕЛУ DESC 25 смещение 0
Код
->skipTotalRecords()
->toJson();
Composer JSON
"itsgoingd/clockwork": "^4.0",
"laravel/cashier": "^12.1",
"laravel/framework": "^8.0",
"yajra/laravel-datatables-oracle": "^9.0",
Пожалуйста, помогите мне, почему запрос count все еще выполняется. Заранее спасибо.
Комментарии:
1. Слишком много вложенных запросов. Вы должны понимать, что для каждой записи во внешней таблице выполняется внутренний запрос. Учитывая, что вы выбираете значения из запроса для каждой строки во внешнем запросе, производительность ухудшается, если таблицы огромны. Я бы посоветовал вам вместо этого использовать объединения.