mysql关联查询

mysql数据库的统计------生成统计信息

1.distinct:在一组之中将各个唯一的值找出来,如找出所有的品牌种类

mysql>select distinct brand_kind from brand;
+---------------+
| brand_kind |
+---------------+
| A                |
| B                |
| C                |
+---------------+

2.计数统计,使用count(*),若没有带where子句,则将统计当前表的行数

a.统计brand中的行数

mysql> select count(*)from brand;
+-----------+
| count(*) |
+-----------+
| 5            |
+-----------+

b.统计一下brand表中brand_kind字段中品牌的数量
mysql>select count(distinct brand_kind) as brandkind_count from brand;

+----------------------+
| brandkind_count |
+-----------------------+
| 3                          |
+-----------------------+
c.添加where子句的count(*)统计,统计出where子句筛选出来的数据的条数。
统计出来trade表中订单时间为2017年10月的数据条数
mysql> select count(*) from trade where trade_time=201710;
+-----------+
| count(*) |
+-----------+
| 6            |
+-----------+
d.区别count(*),count(字段名),count(distinct good_kind)区别。count(*)统计被查数据的行数,count(字段名)统计该字段非NULL的数据条数,count(distinct good_kind)统计出被查数据种类数量。

mysql> select count(*), count(good_kind),count(distinct good_kind) from trade;
+-----------+------------------+----------------------------------------+
| count(*) | count(good_kind) | count(distinct good_kind) |
+----------+------------------+-----------------------------------------+
| 8           | 7                    | 3                                               |
+----------+------------------+-----------------------------------------+

e.根据group by 语句对字段进行分组,然后联合聚合函数对数据进行查询,统计操作。
聚合函数
max(),min(),sum(),count(),avg()

内连接
select *from brand,trade where brand.brand_id=trade.brandid;
左外连接
left outer join:返回包含左表中的所有的纪录和右表中连接字段相等
right outer join:返回包含右表中的所有的纪录和左表中连接字段相等

select distinct brand_kind, count(distinct userid) as user_num,count(distinct trade_id) as trade_num,sum(money) from brand left outer join trade on brand.brand_id=trade.brandid where trade_time=201710 group by brand_kind;

原文地址:https://www.cnblogs.com/kuangkuangduangduang/p/10248044.html

时间: 2024-11-09 05:18:12

mysql关联查询的相关文章

mysql关联查询和联合查询

一.内联方式 1.传统关联查询 "select * from students,transcript where students.sid=transcript.sid and transcript.total>600 and transcript.date=2015-6"; 上面是查询出在2015-6月,月考中总成绩超过600的学生信息.where的条件有三个,要看出是哪些是关联条件,哪些是查询过滤还是挺简单,若是多个表多个查询条件那么就不是那么容易了 2.JOIN...ON

MySql 关联查询

1.内连接 将两张表中相同意义字段连接起来,返回结果是两个表中都存在的信息: select * from TableA,TableB where TableA.字段c=TableB.字段c; select * from TableA inner join TableB on TableA.字段c=TableB.字段c; TableA.字段c=TableB.字段c是一种过滤条件. 2.左外连接 用第一张表中的每一条记录去匹配第二张表对应的记录,不管能不能匹配到记录,查询结果都显示第一个表的所有内容

mysql 关联查询技巧

废话不多说,直接进入正题 #数据准备 班级表class: CREATE TABLE `class` ( `class_no` int(2) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT '班级编号', `class_name` varchar(30) CHARACTER SET utf8 NOT NULL COMMENT '班级名称', PRIMARY KEY (`class_no`) ) ENGINE=MyISAM DEFAULT CHAR

MySQL 关联查询 内连接

内连接    [INNER| CROSS] JOIN无条件内连接:无条件内连接,又名交叉连接/笛卡尔连接第一张表种的每一项会和另一张表的每一项依次组合#例:mysql>  select  *  from  student inner join  department;有条件内连接:在无条件的内连接基础上,加上一个ON子句当连接的时候,筛选出那些有实际意义的记录行来进行拼接#例:mysql> select   *  from   student  inner join  department  

MySQL 关联查询  外连接 { LEFT| RIGHT } JOIN

左外连接: (以左表为基准)两张表做连接的时候,在连接条件不匹配的时候留下左表中的数据,而右表中的数据以NULL填充例:使用左连接把学生的数据全取出来,该学生没有学院信息的用NULL填充 mysql>  select * from  student  left join  department         ->  on dept_id= d_id; 右外连接: (以右表为基准)对两张表做连接的时候,在连接条件不匹配的时候留下右表中的数据,而左表中的数据以NULL填充例:使用右外连接,把没有

MySQL多表关联查询与存储过程

1.多表关联查询 --  **************关联查询(多表查询)**************** -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 1.1 交叉连接查询(不推荐.产生笛卡尔乘积现象:4 * 4=16,有些是重复记录) SELECT empName,deptName FROM employee,dept; -- 需求:查询员工及其所在部门(显示员工姓名,部门名称) -- 多表查询规则:1)确定查询哪些表   2)确定查询哪些字段   3)表与表之间连接条件

[转] hibernate Mysql 自增长 注解配置,表无关联的注解方式关联查询

不同数据库 自增长ID配置 正对不同的数据库可以同时使用         @Id         @GeneratedValue(strategy = GenerationType.AUTO) 2 针对mysql  @Id  @GeneratedValue(strategy = GenerationType.IDENTITY) 3 针对oracle        @Id        @GeneratedValue(strategy = GenerationType.SEQUENCE,gener

JDBC MySQL 多表关联查询查询

public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb","root",""); String sql ="select

MySQL如何执行关联查询

MySQL中‘关联(join)’ 一词包含的意义比一般意义上理解的要更广泛.总的来说,MySQL认为任何一个查询都是一次‘关联’ --并不仅仅是一个查询需要到两个表的匹配才叫关联,索引在MySQL中,每一个查询,每一个片段(包括子查询,设置基于表单的select)都可能是关联. 所以,理解MySQL如何执行关联查询至关重要.我们先来看一个union 查询的例子.对于union查询,MySQL先将一系列的单个查询结果放到一个临时表中,然后再重新读出临时表数据来完成union查询.在MySQL的概念