同様の質問への回答を見てきましたが、この問題の解決策が見つかりません。
フォト アルバム、1 枚の写真、ユーザーの詳細を 3 つのテーブルから選択する必要があります。各ユーザーの最新のアルバムのみを返したい。グループ化と 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