Правильное форматирование Laravel DB Query - PullRequest
0 голосов
/ 19 февраля 2019

По какой-то причине я, должно быть, что-то упускаю, когда пытаюсь переместить свой запрос из необработанного 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...