mysql查询从图像所在的表中选择*按日期和不同上载用户订购
我想做一些mysql查询,按日期查询出5个图像顺序,但来自5个不同的上传用户 mysql数据表结构:id、用户id、图像、文本、日期 但这组总是因为得到用户的id较早上传图像,然后按日期说明下订单,我需要5个不同的用户上传的新的5张图像。也许应该使用一些联合,寻求帮助,谢谢。试试这个查询mysql查询从图像所在的表中选择*按日期和不同上载用户订购,mysql,Mysql,我想做一些mysql查询,按日期查询出5个图像顺序,但来自5个不同的上传用户 mysql数据表结构:id、用户id、图像、文本、日期 但这组总是因为得到用户的id较早上传图像,然后按日期说明下订单,我需要5个不同的用户上传的新的5张图像。也许应该使用一些联合,寻求帮助,谢谢。试试这个查询 SELECT * FROM temp WHERE image!='' GROUP BY user_id HAVING date=max(date) LIMIT 5 不确定mysql,但这在sybase中起作用
SELECT *
FROM temp
WHERE image!=''
GROUP BY user_id
HAVING date=max(date)
LIMIT 5
不确定mysql,但这在sybase中起作用。使用带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
这将获取最新的maxlatest id并将其集成到外部select感谢此解决方案,但这将有另一个问题,您的代码将首先按用户id分组,该用户id首先插入mytable,然后执行这4个用户的图像填充。但是我需要一些效果,比如先获取所有最新的图像,然后按用户分组删除重复的用户id。谢谢。
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