我想做一些mysql查询,按日期查询5个图像顺序,但是从5个不同的上传用户查询。
mysql datatable结构:id, user_id, image, text, date
SELECT *
FROM mytable
WHERE image!=''
GROUP BY user_id
ORDER BY date DESC
LIMIT 5
但是这个GROUP BY
总是导致获得user_id
早期上传图片然后制作ORDER BY date DESC
,我需要5个不同用户上传的新鲜5张图片。也许应该使用一些UNION
,寻求帮助,谢谢。
答案 0 :(得分:0)
尝试此查询
SELECT *
FROM temp
WHERE image!=''
GROUP BY user_id
HAVING date=max(date)
LIMIT 5
不确定mysql
,但这适用于sybase
。
答案 1 :(得分:0)
使用INNER JOIN和MAX
SELECT
mytable.*
FROM
mytable
INNER JOIN
(SELECT MAX(id) AS ID, id FROM mytable GROUP BY user_id) AS m
ON m.id = mytable.id
WHERE image != ''
GROUP BY user_id
ORDER BY DATE DESC
LIMIT 5
这将获取最大(最新)id并将其集成到外部选择