Fuelphp获得相同页面逻辑的评论

时间:2012-08-29 08:41:35

标签: php join fuelphp

首先,我对Fuelphp真的很陌生,如果需要,你可以对这个问题进行投票。 我的问题是我在facebook上做了类似的墙,我并不真正理解评论逻辑。

所以我试着以这种方式加入我的桌子

static function get_stream()
    {
        $query = DB::select()->from('stream_post');
        $query->join('users_metadata');
        $query->on('stream_post.user_id', '=', 'users_metadata.user_id');
        $query->join('stream_comment');
        $query->on('stream_post.stream_id', '=', 'stream_comment.stream_id');
        $query->order_by('stream_post.stream_id', 'DESC');
        $result = $query->execute();
        if(count($result) > 0) {    
            foreach($result as $row)
            {
                $data[] = $row;
            }

            return $data;
        }

    }

这个问题是,这只会显示流发布有评论的内容,而不显示其他内容。

那么请有人给我一个逻辑如何加入表格来显示那些没有评论的帖子?

1 个答案:

答案 0 :(得分:2)

试试:

static function get_stream()
    {
        $query = DB::select()->from('stream_post');
        $query->join('users_metadata');
        $query->on('stream_post.user_id', '=', 'users_metadata.user_id');
        $query->join('stream_comment', 'RIGHT'); // The RIGHT JOIN keyword returns all rows from the right table, even if there are no matches in the left table.
        $query->on('stream_post.user_id', '=', 'stream_comment.user_id');
        $query->order_by('stream_post.stream_id', 'DESC');
        $result = $query->execute();
        if(count($result) > 0) {    
            foreach($result as $row)
            {
                $data[] = $row;
            }

            return $data;
        }
}

修改 该查询应该有效(来自user_id的每个stream_postuser_id中都有相同的users_metadata。只需将此查询转移到fuelphp(之前我没有使用过它)。< / p>

SELECT *
FROM stream_post
RIGHT JOIN stream_comment
ON stream_post.stream_id = stream_comment.stream_id
JOIN users_metadata
ON stream_post.user_id = users_metadata.user_id
ORDER BY stream_post.stream_id DESC