mysql join查询,并统计数量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql join查询,并统计数量相关的知识,希望对你有一定的参考价值。

mysql的两个表,一个是”分类表category“:

另一个是"产品表product“,其中的category字段对应“分类表category”的id

想要只用一条sql语句,得到下面的结果:

在"产品表product“没有数据的情况下,我用”SELECT a.*,COUNT(b.`category`) AS product_num FROM (`pl_category` a) LEFT JOIN `pl_product` b ON b.`category` = a.`id` Group By b.`category` ORDER BY a.`id`“语句查询,得到,另外的两个分类却没有显示出来。

1、打开终端窗口,登录mysql。mysql -uroot -p。

2、SHOW DATABASES;USE testdb;这个时候切换到相应的数据库。

3、SHOW TABLES;INSERT INTO branch VALUES(6, 'BB', NULL, NULL);SELECT * FROM branch;比如我们为branch这个表插入数据。

4、SELECT employee.emp_id, employee.first_name, branch.branch_nameFROM employee JOIN branch ON employee.emp_id = branch.mgr_id;这个时候进行一下数据的联合,用JOIN。

参考技术A 用”SELECT a.*,COUNT(b.`category`) AS product_num FROM (`pl_category` a) LEFT JOIN `pl_product` b ON b.`category` = a.`id` Group By a.`id` ORDER BY a.`id`“

Group By不对,b表里是没有数据的,不能以b表中的category来Group By。
参考技术B select a.*,count(b.category) as product_num from a left join b on a.id=b.category order by a.id 参考技术C 把group by后面的b.category改成a.id本回答被提问者采纳

mysql 统计七天数据并分组

业务背景

统计各机型最近7天bug数量来支撑一张图表:

sql需要查询最近七天数据并按每天和机型进行分组

思路

1. 查询最近7天的数据

select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

拓展

查询最近一天的数据

select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate(); 

查询最近一个月的数据

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);

2. 查询需要的列并分组

例如:

SELECT
	DATE_FORMAT( create_time, \'%Y-%m-%d\' ) days,
	phone_model ,
	count(*) count 
FROM
( SELECT * FROM trial_feedback_pdm WHERE DATE_SUB( CURDATE( ), INTERVAL 7 DAY ) <= date( create_time) ) as day
GROUP BY
	 days,phone_model;

参考链接:

https://blog.csdn.net/sugar_map/article/details/83857449

以上是关于mysql join查询,并统计数量的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询统计数量

Laravel统计Mysql 单个字段不同值的数量

Laravel统计Mysql 单个字段不同值的数量

MySQL 查询某个列中同样值的数量统计

如何使用MySQL查询某个列中相同值的数量统计

Mysql 如何在某字段根据(不同产品),进行统计查询?