Propel – объединение одной и той же таблицы несколько раз и группировка

Я пишу отчет с Propel и вам нужно несколько раз присоединиться к одной и той же таблице , чтобы получить другую статистику для разных диапазонов дат, используя одни и те же данные.

Проблема заключается в том, что propel игнорирует несколько ->leftJoin() для запроса. Я думаю, мне нужно, чтобы каждый из них присоединялся, чтобы их можно было рассматривать индивидуально, но я не могу найти способ сделать это.

Related of "Propel – объединение одной и той же таблицы несколько раз и группировка"

Попробуйте 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