Php 如何将带条件的计算列添加到Propel1.6 Symfony2

Php 如何将带条件的计算列添加到Propel1.6 Symfony2,php,symfony,orm,propel,Php,Symfony,Orm,Propel,是否有任何方法可以使用条件对相关列进行计数,并将其添加到主对象中。 我有如下模式表: -Book -Author -Reader 我想: $readerQuery ->joinWith('book') ->useBookQuery() ->joinWith('author') ->endUse() ->withColumn('COUNT(Author.Id)', 'readBook') ->withColumn('COUNT(Author.Name)

是否有任何方法可以使用条件对相关列进行计数,并将其添加到主对象中。 我有如下模式表:

-Book
-Author
-Reader
我想:

$readerQuery
->joinWith('book')
->useBookQuery()
    ->joinWith('author')
->endUse()
->withColumn('COUNT(Author.Id)', 'readBook')
->withColumn('COUNT(Author.Name)', 'bookByAuthorName(foo)')
->withColumn('COUNT(Author.Name)', 'bookByAuthorName(bar)')
->find()
我想要的结果是:

id name readBooks bookByAuthorName(foo) bookByAuthorName(bar)
1  john  4                 2                   2
2  doe   6                 4                   2  

注意:想象一下这里最简单的关系,它不是实际问题

您的情况是什么?我不完全理解这些问题。要获得有意义的计数值,您需要按id进行分组。条件是count(john读的书(foo写的书))。所以在这里;约翰读了4本书,其中2本是“福”写的,2本是“巴”写的