полям связанных объектов. Как сделать чтобы в списке сначала были объекты по совпадению полей самого объекта, потом по косвенным?
через subSelect сформировать временное поле и по нему сделать сортировку
но не факт что это будет эффективно работать, когда объемы подрастут возможно стоит или нормализовать таблицы, чтоб все нужные данные были под рукой или индексировать в сторонними службами, например через scout, использовать простой вариант на основе tntsearch (sqllite).
я не понял как это мне поможет. У меня в голове один вариант, взять запрос, сначала добавить первый where, получить объекты с пагинацией (у меня беск. скролл поэтому через limit). Продублировать исходный запрос без первого where и добавить остальные по которым ищутся косвенные, взять их N штук. Затем объединить все в коллекцию и взять ->take(perPage). Из минусов что в два раза больше объектов будет брать и 2 sql запроса, но по-моему не критично. Объем большой, около 1 млн объектов, но в целом на скорость пофиг, подождут)
Тогда тебе union использовать. Первая часть будет по текущим, а вторая часть по косвенным, но 1кк в union это наверное будет больно.
Обсуждают сегодня