[英]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.