繁体   English   中英

从数据库中为每个类别获取一个结果

[英]Fetch one result per category from database

如果我在数据库中有6个类别,是否可以从每个类别中获取一个帖子,并按日期,降序,升序显示在页面上和顺序。

我的意思是我有表格blog - idnametextcategory和每个类别的多个帖子。

在页面上每个类别中仅显示一篇帖子的查询是什么?

这是我的意思的示例SQL FIDDLE 所以在这个小提琴中,我想显示1、2和3类的1个结果

您可以使用自我加入,根据最高ID号为每个类别获取一个帖子。

SELECT
  b.*
FROM
  blog b
  join (
  select max(id) id,category
    from blog
    group by category
  ) b1
  using(id,category)
ORDER BY b.category

DEMO

使用NOT EXISTS仅返回一行/类别:

SELECT
  *
FROM
  blog as b1
where not exists (select 1 from blog as b2
                  where b2.category = b1.category
                    and b2.name < b1.name)
ORDER BY category 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM