我已经看到了类似问题的答案,但找不到解决此问题的方法。
我需要从三个表中选择相册、单张照片和用户详细信息。我只想为每个用户返回最近的专辑。尝试分组和 SELECT DISTINCT 查询后,我找不到这样做的方法。这是我当前的查询,除了返回来自同一用户的多个专辑外,它工作正常:
SELECT
gallery_albums.title, gallery_albums.siteID, gallery_albums.albumID, gallery_albums.albumDate, gallery_photos.photoID, gallery_albums.userID
FROM gallery_albums, users, gallery_photos
WHERE users.userID = gallery_albums.userID
AND gallery_photos.albumID = gallery_albums.albumID
GROUP BY gallery_albums.albumID
ORDER BY gallery_albums.albumDate DESC
LIMIT 0 , 30
工作守则
这是对 aarthi_ram 建议的解决方案的轻微修改
SELECT *
FROM (
SELECT gallery_albums.title, gallery_albums.siteID, gallery_albums.albumID, gallery_albums.albumDate, gallery_photos.photoID, gallery_albums.userID, users.fName, users.lName
FROM gallery_albums, users, gallery_photos
WHERE users.userID = gallery_albums.userID
AND gallery_photos.albumID = gallery_albums.albumID
GROUP BY gallery_albums.albumID
ORDER BY gallery_albums.albumDate DESC
) AS newTable
GROUP BY userID
ORDER BY albumDate DESC
LIMIT 10