簡體   English   中英

MySQL查詢以獲取每個類別中的最后一條記錄

[英]MySQL query to get last record in each category

我有兩個表: 文章類別 (大約20個類別),我想得到最新的10篇文章,但不超過一個類別。

文章

id | title | text

類別

id | name

ArticlesCategories (文章和類別之間的關系表)

article | category

我使用下面的查詢,但問題是10結果不是所有最新的文章。

SELECT id, title, categoryId, categoryName
FROM ( 
        SELECT a.id, a.title, ac.category AS categoryId, c.name AS categoryName
        FROM articles AS a 
            LEFT JOIN articles_categories AS ac ON ac.article = a.id 
            LEFT JOIN categories AS c ON c.id = ac.category 
        WHERE ac.priority = 1 
        ORDER BY a.id DESC ) AS tmp_table 
GROUP BY categoryId LIMIT 10

ORDER BY id DESC添加到您的查詢中

這是獲取最后10行的方法是顛倒順序並選擇前十行​​:

SELECT id, title, categoryId, categoryName
FROM ( 
        SELECT a.id, a.title, ac.category AS categoryId, c.name AS categoryName
        FROM articles AS a 
            LEFT JOIN articles_categories AS ac ON ac.article = a.id 
            LEFT JOIN categories AS c ON c.id = ac.category 
        WHERE ac.priority = 1 
        ORDER BY a.id DESC ) AS tmp_table 
GROUP BY categoryId  ORDER BY id DESC LIMIT 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM