0

我有以下查询,它给了我大部分正确的结果。唯一的问题是可以有多张具有相同用户 ID 的照片,我希望它提取最近上传的照片。目前构成它给了我一张随机的照片。我在 中有一个时间戳字段tblimage,但我不知道如何将其合并到此查询中以提取最后上传的照片。

SELECT tblimage.*, events.* 
  FROM (events LEFT JOIN tblfollowers
 ON events.id_user = tblfollowers.username) 
     LEFT JOIN tblimage ON events.id_user = tblimage.userid
     WHERE (((tblfollowers.follower_id)='$test') 
     AND (DATE_FORMAT(events.start_date,'%Y-%m-%d')='$today')) 
     OR (((tblfollowers.follower_id)='$test') 
     AND (DATE_FORMAT(events.end_date,'%Y-%m-%d')='$today')) 
     OR (((events.id_user) ='$test') 
     AND (DATE_FORMAT(events.start_date,'%Y-%m-%d')='$today')) 
     OR (((events.id_user) ='$test') 
     AND (DATE_FORMAT(events.end_date,'%Y-%m-%d')='$today')) 
GROUP BY  events.event_id

我想我可以分享更多细节。 tblimage例如有以下记录:

userid=25 photo = 1.png timestamp = 12:00 jan 19
userid=25 photo = 2.png timestamp = 1:00 jan 18

我希望它只给我 1 月 19 日的照片。

4

2 回答 2

1

最后包括

GROUP BY tblimage.userid Order By tblimage.userid DESC

并且您已经包含了 Goup by,因此您将获得用户的最新图片。

于 2013-01-20T05:53:27.963 回答
0

哇,这很令人费解。

您需要在 where 子句中添加以下内容:

events.start_date=MAX(events.start_date) OR events.end_date=MAX(events.end_date)

如果该日期有多个记录,它将返回 > 1,除非该日期是时间戳,否则它不会。

于 2013-01-20T06:05:28.443 回答