кто-то помочь?
select
t2.id, t2.item_id, t2.comment, t2.vote, t2.author, t2.dt AS comment_dt,
t3.title, t3.cpath, t3.photo, t3.old
from (
select max(id) as max_id,item_id, stat from comments
where DATE_SUB(CURDATE(),INTERVAL 200 DAY)<=dt AND stat = 1
group by item_id
) as t1
left join comments t2
ON t2.id = t1.max_id AND t2.item_id = t1.item_id
left join items t3
ON t3.id=t2.item_id
ORDER BY t1.max_id DESC
таблицы comments и items подключены к моделям Comment и Item соответственно
Версия лары какая
оффтоп... я уже пару лет не писал запросы к мускулу, все делаю через ОРМ... хотя до этого сидел плотно на проекте где только мускул и был... и вот сейчас понадобилось несколько минут что понять что происходит там))
DB::query() ->select([ 't2.id', 't2.item_id', 't2.vote', 't2.author', 't2.dt as comment_dt', 't3.title', 't3.cpath', 't3.photo', 't3.old' ]) ->fromSub( DB::query()->select([ DB::raw('max(id) as max_id'), 'item_id', 'stat' ])->from('comments') ->where('stat', '=', '1') ->whereRaw('DATE_SUB(CURDATE(),INTERVAL 200 DAY) <= dt') ->groupBy('item_id'), 't1' ) ->leftJoin('comments as t2', static function (\Illuminate\Database\Query\JoinClause $join) { $join->on('t2.id', '=', 't1.max_id'); $join->on('t2.item_id', '=', 't1.item_id'); }) ->leftJoin('items as t3', 't3.id', '=', 't2.item_id') ->orderBy('t1.max_id', 'desc') ;
Обсуждают сегодня