首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >from IN子句中的每个元素从子实体获取100行

问from IN子句中的每个元素从子实体获取100行
EN

Stack Overflow用户
提问于 2020-07-29 01:35:29
回答 1查看 36关注 0票数 0

父子关系: OneToMany

代码语言:javascript
复制
Parent - table
+-----+---------+
|id   |   name  |
+-----+---------+
| 1   |  name1  |
| 2   |  name2  |
| 3   |  name3  |
+---------------+

child1 - table 
+--+---------+------+
|id|parent_id|name  |
+--+---------+------+
| 1|   1     |  qwe |
| 2|   1     |  asd | 
| 3|   1     |  dsf |
| 4|   2     |  xzc |
+--+---------+------+

表:公司(上级)、员工(下级)。我想为所有给定公司的100名最近加入公司的员工提供公司的详细信息。

代码语言:javascript
复制
SELECT c.*, e.* 
FROM company c 
JOIN (
    SELECT * 
    FROM employee 
    WHERE company_id IN(2,3,4,5) 
    ORDER BY joined_at DESC LIMIT 100
) e on e.company_id = c.id where c.id in (2,3,4,5)

上面的查询总共只返回100名员工,但我希望在IN子句中为每家公司提供100名员工。

EN

回答 1

Stack Overflow用户

发布于 2020-07-29 01:52:43

您可以使用可分页,它可以获取知道父实体的子实体。请注意,此查询将返回Child的分页结果。

代码语言:javascript
复制
 /**
  * Find Child entities knowing the Parent.
  */
  @Query("select child from Parent p inner join p.childs child where p = :parent")
  public Page<Child> findBy(@Param("parent") Parent parent, Pageable pageable);

你可以这样使用它:

代码语言:javascript
复制
Page<Child> findBy = repo.findBy(parent, new PageRequest(page, size));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63139782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档