->join('users', 'user_id', '=', 'users.id');
Моя проблема в том, что в массиве $outerIds лежит большое колличество элементов (порядка 200к). MySQL поддерживает 65к элементов. И я получаю логичную ошибку: 1390 Prepared statement contains too many placeholders. Вопрос: как этого избежать?
А для чего вам записывать все объекты в память? Что вы с ними делаете?
В дальнейшем на основе них строится либо выгрузка в Экселе либо отдача в json. Но если json ещё как то панинруется, то вот для экселя нужно вывести все объекты
$this->objects = collect(); collect($this->outerIds)->chunk(65000)->each(function ($chunk) { $users = Obj::whereIn('outer_id', $chunk) ->join('users', 'user_id', '=', 'users.id') ->get(); $this->objects->merge($users); });
да, я шел тем же путем, но проблема в том, что нужна не коллекция элементов, а query на выходе)
Обсуждают сегодня