【笔记】Biny框架进行用户发布Mod数量统计

记录一下,统计用户Mod发布数量

需求:

  1. 从“mods”表中获取mod数量;
  2. 从‘user’表中获取用户昵称;
  3. 按照用户发布mod数量进行排序;

利用框架的“group”来实现原始SQL中的

from (select mods_publish,count(1) as user_days

使用框架后的PHP代码:


$pageSize = 20;//每页数量
$pageIndex = 1;//当前页数

$DAO = $this->modsDAO;
$DAO = $DAO->leftJoin($this->userDAO,array('mods_userId'=>'id'));//左联接user表
$DAO = $DAO->filter(['mods'=>array('!='=>array('mods_state'=>array(-1, -2,-5)))]);//判断Mod状态

//....可以在这里进行其他条件筛选或搜索

$count = $DAO->count('mods_userId');   //统计数据
$data = $DAO->group(['mods'=>'mods_userId'])->addition(array(
		array(
			'count'=>array('id'=>'user_days')
		)
	))->order(array('user_days'=>'desc'))->limit($pageSize,$pageIndex)->query(array(
		'mods'=>['mods_userId'],
		'user'=>['user_Name']
	));

运行后输出的结果:

array(
	['mods_userId'=>'8','user_days'=>'23','user_Name'=>'小明'],
	['mods_userId'=>'36','user_days'=>'15','user_Name'=>'小红'],
	['mods_userId'=>'13','user_days'=>'10','user_Name'=>'小刚'],
	['mods_userId'=>'46','user_days'=>'5','user_Name'=>'小强']
);
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注