分组查询 表连接
文章目录
一.单列分组查询语法
SELECT…FROM (表名)
WHERE 筛选条件
GROUP BY 分组 列1
如果有WHERE WHERE在前 分组在后
先进行筛选 再进行分组
二.多列分组查询语法
SELECT…FROM (表名)
WHERE 筛选条件
GROUP BY 分组 列1…列2
三.HAVING查询语法
SELECT…FROM (表名)
#WHERE 对于分组前的数据做筛选
GROUP BY 分组 列1
HAVING 一般都跟聚合函数() 分组筛选 对于分组后的数据做筛选
四.WHERE与HAVINGD对比
WHERE子句
用来筛选 FROM 子句中指定的操作所产生的行
GROUP BY子句
用来分组 WHERE 子句的输出
HAVING子句
用来从分组的结果中筛选行
五.分组查询完整语法
SELECT 列名
FROM 表名
WHERE 筛选条件
GROUP BY 被分组的列
HAVING 分组后的数据的筛选
ORDER BY 排序 DESC从大到小降序 默认ASC从小到大升序
LIMIT 取其中某几条
六.表连接
内链接(INNER JOIN)
语法:
SELECT 列名1 列名2 …
FROM 表一
INNER JOIN 表二
ON
内连接 : 处理表里都有的数据
多表连接查询可以在后面加上别名 AS
不重名的列 可以不加别名
重名的列一定要加别名
多表查询的完整语法:
SELECT 列名
FROM 表名
INNER JOIN 表连接
WHERE 条件筛选
GROUP BY 分组
HAVING 分组筛选
ORDER BY 排序 DESC从大到小降序 默认ASC从小到大升序
LIMIT 取部分显示
七. 三表内连接
SELECT
FROM 表一
INNER JOIN 表二 ON
INNER JOIN 表三 ON
三表连接起别名 AS后面不能重复
八.左外连接 右外连接
左外连接语法:
SELECT 列名1 列名2…
FROM 表一 LEFT JOIN 表二 AS 别名 ON
左外连接 左边的表就是主表 右边的是从表
右外连接语法:
SELECT 列名1 列名2…
FROM 表一 RIGHT JOIN 表二 AS 别名 ON
右外连接 右边的表就是主表 左边的从表
左外连接与右外连接是一样的
区别:就是主表和从表位置不一样
主表有 从表没有 但是都要展示出来 用NULL填充展示
就要找出哪一个表要一定展示 一定展示的就是主表
AS 别名 ON
右外连接 右边的表就是主表 左边的从表
左外连接与右外连接是一样的
区别:就是主表和从表位置不一样
主表有 从表没有 但是都要展示出来 用NULL填充展示
就要找出哪一个表要一定展示 一定展示的就是主表