sql - 如何更改此 SQL 以便我可以从每个作者那里获取一篇文章?

标签 sql mysql inner-join

在下面的 sql 中我有最后 5 篇文章。但有时这些帖子来自同一作者。我想选择最后 5 个,但每个作者只选择一个。

SELECT `e` . * , 
       `f`.`title` AS `feedTitle` , 
       `f`.`url` AS `feedUrl` , 
       `a`.`id` AS `authorId` , 
       `a`.`name` AS `authorName` , 
       `a`.`about` AS `authorAbout`
FROM `feed_entries` AS `e`
INNER JOIN `feeds` AS `f` ON e.feed_id = f.id
INNER JOIN `entries_categories` AS `ec` ON ec.entry_id = e.id
INNER JOIN `categories` AS `c` ON ec.category_id = c.id
INNER JOIN `authors` AS `a` ON e.author_id = a.id
GROUP BY `e`.`id`
ORDER BY `e`.`date` DESC
LIMIT 5 

已编辑

我最终得到了它:

SELECT a.id, e.date, e.title, a.name
FROM feed_entries e, authors a 
WHERE e.author_id =a.id 
ORDER BY e.date DESC 
LIMIT 5

在此查询中,如何才能为每个作者获取一篇帖子?

最佳答案

怎么样

select a.id, a.name, e.date, e.titulo
  from feed_entries e
 inner join authors a
    on e.author_id = a.id
    -- Get the most recent feed_entry
   and e.date = (select max(e1.date) from feed_entries e1 where e1.author_id = a.id)
 order by e.date desc

我还没有测试过,但它可以工作。

关于sql - 如何更改此 SQL 以便我可以从每个作者那里获取一篇文章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886070/

相关文章:

SQL 查找最受欢迎的类别

php - MySQL 命令不通过 PHP 脚本执行

join - Hadoop Mapreduce map 侧联接

php - 我是不是效率很低? mysqli 循环调用

mysql - 为什么在 INNER JOIN 中使用 MAX() 时只能选择两列?

sql - 只显示有 MOrderNo 的子订单号

mySQL - UNION 语句的性能

sql - 金额低于 200 多久了

mysql - 数据库休眠导致异常

mysql - Docker - 重新创建后回滚 MySQL 容器中的数据