使用变量分组的sql,
排序后再分组,取分组的第一个
SELECT result.*,ta.`name` AS tagName,com.`abbr` FROM (
SELECT
a.*,
@rownum := @rownum + 1,
IF(
@tempAppId = a.app_id,
@dataRank := @dataRank + 1,
@dataRank := 1
) AS dataRank,
@tempAppId := a.app_id
FROM
(SELECT * FROM tab1 t ORDER BY t.app_id, t.`stat_date` DESC) a,
(SELECT @rownum :=0,@tempAppId:=NULL,@dataRank := 0) b
) result
LEFT JOIN tab2 ta ON ta.`id` = result.`app_id`
LEFT JOIN tab3 com ON com.`id` = result.`devlop_company_id`
WHERE result.dataRank =1
AND(
result.`app_name` LIKE CONCAT('%跑%' )
OR result.`cate_name` LIKE CONCAT('%跑%' )
OR com.`abbr` LIKE CONCAT('%跑%' )
OR ta.`name` LIKE CONCAT('%跑%' )
);