TP5 JOIN 多條件(子查詢)
阿新 • • 發佈:2018-12-22
一:例子需求:統計多個使用者下對應的(使用者表),簽到活動次數(活動表)/ 報名活動次數(報名表)與其他
//子查詢(用group 把使用者分組,統計簽到表中每個使用者簽到的次數) $activitySign = Db::name('activity_sign') ->field('member_id,count(member_id) sign_count') ->group('member_id') ->buildSql(); //子查詢(用group 把使用者分組,統計簽到表中每個使用者報名的次數) $activityPar = Db::name('activity_participant') ->field('member_id,count(member_id) count') ->group('member_id') ->buildSql(); //使用者主表(子查詢中統計的值,可以直接在field中取出,並不需要再次統計) $list = Db::name('member') ->alias('m') ->field('m.member_id,sign_count,count,m.member_nickname') ->join([$activitySign=> 'as'], 'm.member_id = as.member_id','left') ->join([$activityPar=> 'ap'], 'm.member_id = ap.member_id','left') ->paginate();