【问题标题】:MySQL query add limit on relation tableMySQL查询对关系表添加限制
【发布时间】:2021-04-26 20:45:59
【问题描述】:

我有 2 个与 OneToMany 链接的表。表格 books 和表格 authors。每个作者都有很多书。 我想获取书籍列表,但对于每个作者,只有 10 本书。

如何实现?

感谢您的帮助

【问题讨论】:

  • 您使用的是哪个 MySQL 版本?
  • mysql -V 给出:mysql Ver 15.1 Distrib 10.3.28-MariaDB,用于 debian-linux-gnu (x86_64) 使用 readline 5.2

标签: mysql sql


【解决方案1】:

您可以使用ROW_NUMBER() 例如:

select *
from (
  select *, row_number() over(partition by author_id order by title) as rn
  from book
) x
where rn <= 10

【讨论】:

  • 谢谢。让我试一试:)
  • 如果有人感兴趣:SELECT * FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY author_id ORDER BY expire_date IS NULL DESC, expire_date DESC) AS max_books_per_author FROM book) b INNER JOIN author a ON b. author_id = a.id WHERE max_books_per_author
猜你喜欢
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
相关资源
最近更新 更多