Thinkphp 多表查询 如果为NULL 为0 且外接表不存在则为0

需要leftJoin 关联一个可能为空的表,设置IFNULL(COUNT(a.id),0)

RT 上代码

        return $this->alias("a")
                    ->join("loan_co b","a.loan_co_a=b.id")
                    ->join("loan_co c","a.loan_co_b=c.id")
                    ->leftJoin("loan_hk d","a.id=d.lid")
                    ->where($where)
                    ->field("a.*,b.name as aname,c.name as bname,IFNULL(sum(d.hk_money),0) as pk")
                    ->group("a.id")
                    ->select();

范例二

反复调用field(“a.*,IFNULL(SUM(b.number),0) as done_number,ROUND(100*(number-done_number)/number,2)”)

  • IFNULL(SUM(b.number),0) as done_number
  • ROUND(100*(number-done_number)/number,2)
    public function show_ones($id){
        // 对大资产ID下的信息全部查询
        $PropertyOne=new PropertyOneModel();
        $where[]=['a.pid',"=",$id];
        return $PropertyOne->alias("a")
                    ->leftJoin("lease b","b.po_id=a.id")
                    ->where($where)
                    ->field("a.*,IFNULL(SUM(b.number),0) as done_number,ROUND(100*(number-done_number)/number,2)")
                    ->group("a.id")
                    ->select();
    }

发表回复