推进 - 多次连接同一个表并进行分组

时间:2011-11-01 16:54:50

标签: php join grouping propel

我正在使用Propel编写报告,需要多次加入同一个表,以便使用相同的数据获取不同日期范围的不同统计信息。

问题似乎是推测忽略了对查询的多个->leftJoin()调用。我想我需要为每个连接添加别名,这样它们就可以单独处理,但我找不到办法。

2 个答案:

答案 0 :(得分:1)

尝试addJoin()

$c = new Criteria();
$c->addJoin(array(Table1Peer::ID,), array(Table2Peer::Table1Peer_ID,), Criteria::LEFT_JOIN);

看起来您也可以使用别名:

$c->addJoin(TablePeer::alias("alias1", TablePeer::PRIMARY_KEY_COLUMN), TablePeer::PRIMARY_KEY_COLUMN);

通过别名和传入数组的能力,您似乎应该可以对同一个表进行多连接。

答案 1 :(得分:0)

或者,您只需添加“RelatedBy”关系方法......

例:

ItemQuery::create()
->leftJoinItemRelatedByCodItemFather( 'Child' )
    ->addAsColumn( 'ChildName', "Child.name" )
->find() ;

我总是喜欢使用自动生成的Propel Methods = D