mysql查询select * from table where image!=''按日期排序,使用不同的上传用户

时间:2013-02-11 09:19:06

标签: mysql

我想做一些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,寻求帮助,谢谢。

2 个答案:

答案 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并将其集成到外部选择