2017-08-22 24 views
0

基本上,我有一個銅礦畫廊,我想在主頁上顯示最近4個更新的相冊。以下是我迄今爲止的查詢。它基本上得到最新的照片。子查詢可以自行完成,但是當它將它們分組以獲取每個專輯時,它似乎沒有從列表中獲取最新的專輯。MySQL:按語句分組前的結果排序

SELECT * 
FROM (
SELECT c.cid, c.name AS catname, a.aid, a.title AS albumtitle, a.category, p.aid AS albumid,p.filepath,p.filename,p.ctime AS creationtime,p.title AS pictitle,p.approved 
FROM cpg145_pictures AS p LEFT JOIN `cpg145_albums` AS a ON p.aid = a.aid LEFT JOIN `cpg145_categories` AS c ON a.category = c.cid 
WHERE p.approved='YES' AND a.category IN (47,48) 
ORDER BY p.ctime DESC) AS T 
GROUP BY albumid 
ORDER BY creationtime DESC 
LIMIT 4 
+0

您可以請張貼一些樣本數據和所需的結果。這對我們來說是最好的幫助你。 –

回答

0

我想出了答案。顯然,在MariaDB中你必須給子查詢一個限制,以便正確排序。所以:

SELECT * 
FROM (
SELECT c.cid, c.name AS catname, a.aid, a.title AS albumtitle, a.category, p.aid AS albumid,p.filepath,p.filename,p.ctime AS creationtime,p.title AS pictitle,p.approved 
FROM cpg145_pictures AS p LEFT JOIN `cpg145_albums` AS a ON p.aid = a.aid LEFT JOIN `cpg145_categories` AS c ON a.category = c.cid 
WHERE p.approved='YES' AND a.category IN (47,48) 
ORDER BY p.ctime DESC 
LIMIT 200) AS T 
GROUP BY albumid 
ORDER BY creationtime DESC 
LIMIT 4