mysql查询从图像所在的表中选择*按日期和不同上载用户订购

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中起作用

我想做一些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中起作用。

使用带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