【问题标题】:Doctrine 1.2: how to get the count of related table rows ina a query?Doctrine 1.2:如何在查询中获取相关表行的计数?
【发布时间】:2013-05-28 00:18:09
【问题描述】:

我有一个用户表,以及一个名为 UserWorkplaces 的相关表,其中一个用户可以在 UserWorkplaces 表上拥有任意数量的相关行。

我正在尝试构建一个查询来查找在 UserWorkplaces 中只有一个相关行的所有用户。我应该使用哪种查询来获取此信息?

这是我迄今为止尝试过的,但它给了我每个人工作场所的数量,并且只有一个用户:

$query = Doctrine_Query::create()
    ->from('Users', 'u')
    ->innerJoin('u.userWorkplaces uw')
    ->having('COUNT(uw.id) = 1');

【问题讨论】:

    标签: count inner-join doctrine-1.2


    【解决方案1】:

    我相信你的问题不是 Doctrine,而是你想要实现的 SQL。

    故事简短,下面的代码应该对你有用。

    $query = Doctrine_Query::create()
        ->from('Users u')
        ->innerJoin('u.userWorkplaces uw')
        ->having('COUNT(uw.id) = ?', 1)
        ->groupBy('u.id');
    

    COUNT() 是聚合函数,因此您需要为要列出的主表指定 GROUP BY 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多