我有以下查询,它给了我大部分正确的结果。唯一的事情是可以有多张具有相同用户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日给我一张照片。
答案 0 :(得分:1)
最后包括
GROUP BY tblimage.userid命令by tblimage.userid DESC
并且您已经包含了Goup,因此您将获得用户的最新图片。
答案 1 :(得分:0)
您需要将以下内容放在where子句中:
events.start_date=MAX(events.start_date) OR events.end_date=MAX(events.end_date)
如果该日期有多个记录,则返回> 1,除非该日期是时间戳,否则它不会。