По какой-то причине я, должно быть, что-то упускаю, когда пытаюсь переместить свой запрос из необработанного SQL в Laravel DB.
В данный момент этот запрос SQL:
SELECT id, COUNT(id) AS count FROM agent_billings_items WHERE agentBillingBatch = 224 AND shipmentID IS NOT NULL GROUP BY shipmentID HAVING COUNT(id) > 1;
Я получаю три (3) результата назад с правильно установленным счетчиком.Однако, когда я пытаюсь записать это, используя Laravel DB:
$results = DB::table('agent_billings_items')
->select('id', DB::raw('count(*) as count'))
->where('agentBillingBatch', $this->id)
->whereNotNull('shipmentID')
->whereNull('deleted_at')
->groupBy('shipmentID')
->havingRaw('count > 1')
->get();
, я ничего не получаю.Я знаю, что необработанный запрос SQL является правильным, поскольку я проверял его вручную, поэтому я знаю, что $results
в Laravel должен что-то возвращать.
Буду признателен за любую помощь.Спасибо
// ОБНОВЛЕНИЕ С ДД ЗАПРОСА //
array:1 [▼
0 => array:3 [▼
"query" => "select `id`, count(*) as count from `agent_billings_items` where `agentBillingBatch` = ? and `shipmentID` is not null and `deleted_at` is null group by `shipmentID`, `id` having count > 1 ◀"
"bindings" => array:1 [▼
0 => 224
]
"time" => 41.85
]
]
// ОБНОВЛЕНИЕ ПОСЛЕ УДАЛЕНИЯ id ИЗ ГРУППЫ BY
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'truckin.agent_billings_items.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select
id , count(*) as count from
agent_billings_items where
agentBillingBatch = 224 and
shipmentID is not null and
deleted_at is null group by
shipmentID having count > 1)