我正在使用Propel编写报告,需要多次加入同一个表,以便使用相同的数据获取不同日期范围的不同统计信息。
问题似乎是推测忽略了对查询的多个->leftJoin()
调用。我想我需要为每个连接添加别名,这样它们就可以单独处理,但我找不到办法。
答案 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