'=', 't.id')
->join('xc_radioc as r', 'radio_id', '=', 'r.id')
->whereIn('xc_historyc.id', \Tailor\Models\EntryRecord::inSection('History')->selectRaw('max(id)')-> groupBy('xc_historyc.radio_id', 'xc_historyc.id'))->toSql());
Какой запрос выдает полный ?
select t.slug, t.title, t.cover, r.slug as r_slug, r.title as r_title from xc_historyc inner join xc_trackc as t on track_id = t.id inner join xc_radioc as r on radio_id = r.id where xc_historyc.id in (select max(id) from xc_historyc where xc_historyc.draft_mode = ? and xc_historyc.is_version = ? and xc_historyc.deleted_at is null group by xc_historyc.radio_id, xc_historyc.id) and xc_historyc.draft_mode = ? and xc_historyc.is_version = ? and xc_historyc.deleted_at is null
Ну вложенный запрос есть, который возвращает максимальный id в группах по группировке radio_id, id. Следственно проблема в чем-то другом. Возможно надо еще какие-то даты ограничивать или еще какой столбец ограничения выборки ?
Можешь попробовать в базу кинуть отдельно запрос select max(id) from xc_historyc where xc_historyc.deleted_at is null group by xc_historyc.radio_id, xc_historyc.id И глянуть чего он вернет. Правда там есть еще xc_historyc.draft_mode, и xc_historyc.is_version. draft_mode по режиму работы блюпринта, есть там черновики или нет, значения, если память не изменяет, для draft_mode следующие: 1 - опубликовано 2 - черновик готовый к публикации 3 - сохраненный черновик 4 - временный черновик а is_version считался по снапшоту. Вполне вероятно если версий много, то может быть больше ID связанных которые и мусорят. Возможно надо выбирать еще и максимальные версии
все заработало. СПАСИБО. orderBy сделал по 1 полю. второе поле лишнее было в моем исходном варианте
Обсуждают сегодня