问题描述

最近在开发博客的时候需要对分类进行一个简单的数量统计,以此片文章来记录学习过程

博客分类

解决方法

laravel 的 DB 支持各种查询,最开始不怎么会,最后各种百度还是搞定了

数据库表

文章表 分类表

查询语句

$article_groups = DB::table('article_group')
	->select([
		'article_group.name as name',
		DB::raw('count(`blog_article`.`id`) as count'),

	])
	->leftJoin('article','article_group.id','=','article.g_id')
	->groupBy('article_group.id')
	->get();
dump($article_groups);

查询结果

查询结果

SQL

SELECT
	blog_article_group.id as id,
	blog_article_group.name as name,
	count(blog_article.id) AS count
FROM blog_article_group
LEFT JOIN blog_article ON blog_article_group.id = blog_article.g_id
GROUP BY blog_article_group.id

总结讨论

每种语言都会遇到类似的情况,在学习 Golang 的时候也会遇到类似的情况

相关资源

Laravel 一条 SQL 如何 count 多个字段,Laravel 一条 sql 查询每个分类的数量