【问题标题】:how to get max count of records in a belongs to many relation with a where clause如何使用where子句获取属于多个关系的最大记录数
【发布时间】:2015-10-14 01:16:23
【问题描述】:

我有 3 个模型,分别代表 参加者 可以注册的 计划 和 计划段​​trong>。

  1. ScheduledPrograms 有很多
  2. ScheduledProgramSegments 属于许多
  3. 参加者 (属于许多ScheduledProgramSegments)

与会者有一个字段已注册,它是一个布尔值 1/0,用于指示与会者是否已注册。

我想做一个查询,以查找程序的 ProgramSegments 中的最大参加者注册计数。 IE。像

Max(    ScheduledProgram::find(id)->ScheduledProgramSegments->with([('attendees') => function($query)
    {
        $query->where('registered');
    }])->count();
);

有没有办法在 Eloquent 或 Query Builder 中编写这个查询?如果这是唯一的方法,即使使用查询生成器中的原始表达式?

编辑:澄清一下,我有一个带有字段registered 的数据透视表,我想立即加载标记为registered 的记录数。

到目前为止,除非我添加和维护一个我不想做的计数字段,否则这似乎是不可能的,所以我运行一个单独的查询来获取我从数据透视表中检索到的每条记录的计数表。

【问题讨论】:

    标签: sql laravel laravel-4


    【解决方案1】:

    尝试在您的查询中更新这部分

    $query->where('registered')->max('column_name');
    

    【讨论】:

    • 感谢您的建议,再次查看我的问题后,我意识到很难理解我在说什么。如果您有兴趣,我已对其进行了澄清并介绍了我当前的解决方法。
    猜你喜欢
    • 2017-12-31
    • 2021-09-27
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2014-03-09
    • 2013-05-05
    • 2020-12-09
    • 2017-10-14
    相关资源
    最近更新 更多