2011-02-23 40 views
0

我有一個查詢,它提取出所有文章及其類別(與當前類別匹配)。在JOIN中限制查詢?

我希望它每個類別只能提取5篇文章。我該怎麼做?

查詢:

SELECT a.* FROM 
        Articles a 
        LEFT JOIN Articles_category b 
        ON a.id=b.article_id 
        LEFT JOIN Categories c 
        ON c.id = b.category_id 
        LEFT JOIN Articles_category ac1 
        ON ac1.main = 1 AND a.id = ac1.article_id AND ac1.position > 0 
        WHERE c.id = '14' 
        ORDER BY b.main DESC 

我希望它僅僅選擇5條上衣爲每個類別。

回答

1

您無法使用該查詢。根據類別ID,您將不得不循環查看類似的查詢。您可以在存儲過程中執行此操作,或者在代碼中重複循環查詢。

+0

我該怎麼做? – WEBProject 2011-02-23 10:45:47

+1

它看起來像你現在的代碼已經做到了,對於一個單獨的類別。您需要在最後放置「LIMIT 5」以返回最後5行。這將返回匹配的那個類別的前5個,然後您需要循環遍歷PHP中的類別。我對存儲過程所需的語法不熟悉,但我相信它將在類別表上選擇SELECT,然後多次執行該語句。 – corrodedmonkee 2011-02-23 10:50:59