我有一个查询返回正确的数据,但左连接未返回最新记录(按日期上传列排序)感谢您的帮助。
select a.*,p.thumbnailphotopath as Picture from album_access ac
inner join albums a on a.ID = ac.AlbumID
left join (select albumid, thumbnailphotopath,max(DateUploaded) from photos where IsProcessed = 1 and IsPrivate = 0 GROUP BY albumID) p on a.ID = p.AlbumID #photos record not latest
where ac.AccessUserID = ? and ac.Ispending = 0 and ac.FullControl = 1 and a.Private = 1 order by a.DateCreated desc limit ?,?;
List of dates that return desc (its returning 2012-05-01 09:45:43 and thats not the latest)
2012-05-01 09:46:17
2012-05-01 09:46:06
2012-05-01 09:45:43 --Returning this record
2012-05-01 09:45:30
2012-05-01 09:39:49
最佳答案
您需要预查询来获取每个相册上传的最大日期,然后可以根据匹配的相册和日期限定符获取正确的相册条目...
select
a.*,
pFinal.thumbnailphotopath as Picture
from
album_access ac
inner join albums a
on ac.AlbumID = a.ID
AND a.Private = 1
left join ( select
p.albumid,
max( p.dateUploaded ) as MaxDate
from
photos p
where
p.IsProcessed = 1
AND p.IsPrivate = 0
group by
p.AlbumID ) pMax
on ac.AlbumID = pMax.AlbumID
left join photos pFinal
on pMax.AlbumID = pFinal.AlbumID
AND pMax.MaxDate = pFinal.DateUpladed
where
ac.AccessUserID = ?
and ac.Ispending = 0
and ac.FullControl = 1
order by
a.DateCreated desc
limit ?,?;
关于mysql MAX 查询不返回连接上的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404958/