PHP网站,mysql查询语句,应该怎么关联这2个查询
    function get_user($start = 0, $limit = 5) {
        $sql = "SELECT u.articles as num, u.id,u.name FROM `user` as u LIMIT $start,$limit";
        $list = array ();
        $query = $this->db->query ( $sql );
        foreach ( $query->result_array () as $model ) {
            $followed = $this->followed ( $model ['id'], $this->base->user ['id'] );
            $model ['hasfollower'] = $is_followed == 0 ? "0" : "1";
            $list [] = $model;
        }
        return $list;

    }

现在需要基于上面的数组中的id作为条件,来再次查询

 select sum(views) from topic where author=$model ['id']

那么我需要在数组每个值中输出sum(views)。

应该怎么结合。

2个回答

建立一个sum(views)的试图,左链接取试图中的sum(views)列值就行了,干嘛要读2次数据库

大概如下,没测试

 create view sumviews
as
select sum(views) as sumviews from topic group by author
  $sql = "SELECT u.articles as num, u.id,u.name,sv.sumviews FROM `user` as u left join sumviews as sv on sv.author=u.id LIMIT $start,$limit";
chujingya
chujingya 厉害
一年多之前 回复
showbo
支付宝加好友偷能量挖 回复qq_41265012: left join已经将author和id建立起关系了,自己多学下sql。。
一年多之前 回复
showbo
支付宝加好友偷能量挖 回复qq_41265012: 不需要再读数据库,读用户信息的时候同时读取试图中的统计就行了,如果用户没有发布过信息,sum(views)会为空,不是0,你需要注意这个判断
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 同意这位专家的意见!
一年多之前 回复
qq_41345766
qq_41345766 回复showbo: 我也不知道
一年多之前 回复
qq_41265012
qq_41265012 为什么要用group by author 查询条件是where author=$model ['id']啊
一年多之前 回复
showbo
支付宝加好友偷能量挖 试图代码有问题,改这样 create view sumviews as select sum(views) as sumviews,author from topic group by author
一年多之前 回复

可以通过创建视图来进行处理,也可以通过SQL的级联查询来进行处理。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问