thinkPHP5.0联表查询和统计文章的图片(栏目文章)数量

public function index()
{
//获取内容列表信息
$res = db('article')->alias('a')
->join('category b', 'b.id=a.cid')
->join('pics c','c.aid=a.id','LEFT')
->order('a.istop desc,a.addtime Desc,a.addtime Desc')
->field('a.*,b.name,count(c.pic) as pic')
->group('a.id')
->paginate(4);
$this->assign('list', $res);
return view('article_list');
}
alias('当前数据表的别名'),用于设置当前数据表的别名,便于使用其他的连贯操作
join('表名 别名',关联条件,'关联类型'),用于根据两个或多个表中的列之间的关系,从这些表中查询数据,关联类型可以为空默认为INNER,不区分大小写
关联类型有
1、INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行
2、LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
3、RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
4、FULL JOIN: 只要其中一个表中存在匹配,就返回行
group()通常用于结合合计函数,根据一个或多个列对结果集进行分组,group方法只有一个参数,并且只能使用字符串
field()中内容表示查找a表的全部字段和b表的name字段,count()统计c表的图片数量并且给别名为pic(模板渲染时用{$vo.pic}),group()以a表id为分组
posted @ 2018-05-14 16:39  雨筠  阅读(477)  评论(0编辑  收藏  举报