2011-07-08 169 views
0

我需要一個查詢;條件是:Mysql查詢獲取每個類別的前5個子類別

我想從每個類別中只選擇最新的5個子類別;

當前的查詢是:

SELECT a.id,a.catagory_name,b.id as sucid,b.subcatagory_name 
FROM category a 
LEFT JOIN subcategory b ON a.id = b.catagory_id 
WHERE a.active='y' AND b.active='y' 
ORDER BY a.priority,b.subcatagory_name 
+1

添加'LIMIT 5'?這就是你需要的一切嗎?如果您需要更多信息,請在您的問題中提供更多信息。 – Flimzy

+0

選中此:http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/ – malletjo

回答

0

請試試這個。

SELECT a.id,a.catagory_name,b.id as sucid,b.subcatagory_name 
FROM category a 
LEFT JOIN subcategory b ON a.id = b.catagory_id 
WHERE a.active='y' AND b.active='y' 
ORDER BY a.priority,b.category_id DESC 
LIMIT 0,5 

這可能適合你。

+1

爲什麼0在你的極限?這是默認行爲。 – Flimzy

+0

此外,限制適用於整個結果。這不是要求的。 –

+0

這將給一個類別只有五個rec ... – John

0

讓我們試試這個:

SELECT a.id,a.catagory_name,B.id as sucid,B.subcatagory_name 
FROM category a 
(SELECT id,subcatagory_name FROM subcategory WHERE catagory_id = a.id ORDER BY id DESC LIMIT 5) AS B 
ON a.id = B.catagory_id 
ORDER BY a.priority,B.category_id; 
+0

mysql 4不支持此查詢... – John

相關問題