【发布时间】:2013-12-13 16:53:17
【问题描述】:
我正在尝试在 cakephp 中使用左连接选择数据,这里我如何使用两个以上的表进行左连接。这里我在两个表 news_feeds 和 news_feed_likes 之间创建左连接。我想在这里再介绍两个表,NewsFeedComments和 newsfeed_likes_cmets。我该怎么做?
感谢您的帮助
$this->paginate = array(
'conditions' => array('NewsFeed.group_id'=>$groupdata['Group']['id'],'NewsFeed.status'=>'A'),
'joins' => array(
array(
'alias' => 'newslikes',
'table' => 'news_feed_likes',
'type' => 'LEFT',
'conditions' => array(
'newslikes.news_feed_id = NewsFeed.id',
'newslikes.user_id'=>$this->Auth->user('id'),
'newslikes.status'=>'1',
),
),
array(
'alias' => 'newscommentslikes',
'table' => 'news_feed_comments_likes',
'type' => 'LEFT',
'conditions' => array(
'newscommentslikes.news_feed_comment_id = NewsFeedComment.id',
'newscommentslikes.user_id'=>$this->Auth->user('id'),
'newscommentslikes.status'=>'1',
),
),
),
'fields' => array(
'IFNULL(newslikes.user_id,0) AS likestatus',
'NewsFeed.id',
'NewsFeed.posted_message',
'NewsFeed.created',
'NewsFeed.user_id',
'NewsFeed.status',
'NewsFeed.newslike',
'IFNULL(newslikes.status,0) AS status',
),
'order' => array('NewsFeed.created' => 'desc'),
);
$this->set('newsfeed', $this->paginate( $this->NewsFeed ) );
【问题讨论】:
-
'joins' => array(array(..first join..), array(..second join..), ..., array(.. nth join..));您是否尝试过向 joins 数组添加更多数组? -
将尝试此操作并回复您
-
我已经检查过了,请检查我上面的代码,它给了我错误 Unknown column 'NewsFeedComment.id' in 'on Clause',在这里我如何使用另一个模型 NewsFeedComment。
-
如果 news_feed_cmets 没有 newscmetslikes,基本上应该返回 0
标签: cakephp