Запрос в Laravel не возвращает ни одной записи - PullRequest
0 голосов
/ 13 февраля 2020

Я сталкиваюсь с этой проблемой с Laravel 5.8. Я сделал левое соединение в подзапросе, чтобы принести некоторые записи. Дело в том, что когда я dd ($ importadosot) не имеет никаких записей на нем. Но когда я регистрирую запрос и помещаю все параметры там, где они go на mysql верстак, он приносит записи. Я что-то упустил?

    $subqRepetidos = Ot::select('abonado', DB::raw('COUNT(abonado) as CantidadRepetido') )
                       ->whereNotNull('fecha_reparado')
                       ->whereBetween('fecha',
                       [ "'" . date( 'Y-m-d',$AntiguedadRepetido) . " 00:00:00'", "'" . date('Y-m-d') . " 23:59:00'"])
                       ->groupBy('abonado')
                       ->having('CantidadRepetido', '>', '1');

    $importadosot = DB::table('importados_ot')
                      ->leftJoinSub($subqRepetidos, 'subqrepetidos',
                      function ($join)
                      {
                        $join->on('importados_ot.abonado', '=', 'subqrepetidos.abonado');
                      })
                      ->select('importados_ot.*',
                               DB::raw("CASE WHEN subqrepetidos.CantidadRepetido IS NULL THEN 'No Repite'
                                             WHEN subqrepetidos.CantidadRepetido > 1 THEN 'Repetido 1'
                                             ELSE 'Repetido > 1' END as repetido"),
                               DB::raw("CASE WHEN importados_ot.tipo_ot = 'Aseg P Ext' THEN 'Abono'
                                             ELSE 'Alta' END as desc_tipo_ot"),
                               DB::raw("DATEDIFF( importados_ot.fecha, importados_ot.fecha_ingreso) AS tmr"))
                      ->where('importados_ot.fecha','=', "'" . date('Y-m-d'). " 00:00:00'")
                      ->get();

Журнал запросов выводит следующее:

array:1 [▼
  0 => array:3 [▼
    "query" => """
      select `importados_ot`.*, CASE WHEN subqrepetidos.CantidadRepetido IS NULL THEN 'No Repite'
                                                       WHEN subqrepetidos.CantidadRepetido > 1 THEN 'Repetido 1'
                                                       ELSE 'Repetido > 1' END as repetido, CASE WHEN importados_ot.tipo_ot = 'Aseg P Ext' THEN 'Abono'
                                                       ELSE 'Alta' END as desc_tipo_ot, DATEDIFF( importados_ot.fecha, importados_ot.fecha_ingreso) AS tmr from `importados_ot` left join (select `abonado`, COUNT(abonado) as CantidadRepetido from `ot` where `fecha_reparado` is not null and `fecha` between ? and ? group by `abonado` having `CantidadRepetido` > ?) as `subqrepetidos` on `importados_ot`.`abonado` = `subqrepetidos`.`abonado` where `importados_ot`.`fecha` = ? ◀
      """
    "bindings" => array:4 [▼
      0 => "'2020-01-04 00:00:00'"
      1 => "'2020-02-13 23:59:00'"
      2 => "1"
      3 => "'2020-02-13 00:00:00'"
    ]
    "time" => 8.92
  ]
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...