Users (user_id, ...)
News (news_id, user_id ref users, ...)
comments (comment_id, ...)
Zamierzam skonstrować tego typu zapytanie:
SELECT news.*, users.*, COUNT(comments.comment_id) AS nb_comment FROM news LEFT JOIN users ON (news.USER_ID=users.USER_ID) LEFT JOIN comments ON (news.NEWS_ID=comments.ID_OF AND comments.TO_WHAT=1 AND comments.VISIBLE=1)
Napisałem kod:
$c = new Criteria(); ), Criteria::LEFT_JOIN); //c->addAsColumn('nb_comments', 'Count(' . CommentsPeer::COMMENT_ID . ')'); $this->Newss = NewsPeer::doSelectJoinUsers($c);
Ten kod działa, dopóki nie odkomentuję linii, gdzie zliczam komentarze. Gdy to zrobię propel generuje zapytanie, które pobiera tylko tą jedną kolumnę, nie pytając o wszystkie dane z tabel news i users. Jak to naprawić?
//OK, jakoś to poprawiłem. Ale jak teraz przy wyświetlaniu w template:
dostać się do kolumny z ilością komentarzy (nb_comments)?
foreach($Newss as $news){ ... }