Я пишу отчет с Propel и вам нужно несколько раз присоединиться к одной и той же таблице , чтобы получить другую статистику для разных диапазонов дат, используя одни и те же данные.
Проблема заключается в том, что propel игнорирует несколько ->leftJoin()
для запроса. Я думаю, мне нужно, чтобы каждый из них присоединялся, чтобы их можно было рассматривать индивидуально, но я не могу найти способ сделать это.
Попробуйте 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);
С возможностью псевдонимов и передачи в массивы кажется, что вы должны иметь возможность делать несколько объединений в одну и ту же таблицу.
Или вы можете просто добавить методы отношения «RelatedBy» …
Напр .:
ItemQuery::create() ->leftJoinItemRelatedByCodItemFather( 'Child' ) ->addAsColumn( 'ChildName', "Child.name" ) ->find() ;
Я всегда предпочитаю использовать автоматически созданные Propel Methods = D