图解内连接和外连接的返回结果
#二、SQL 99标准
/*
语法:
select 查询列表,【分组函数】
from 表1 别名【连接类型】
join 表2 别名
...
on 连接条件
【where 分组前筛选条件】
【group by 分组列表】
【having 分组后筛选条件】
【order by 排序列表】
分类:
内连接:inner
外连接:左连接(left【outer】)、右连接(right【outer】)、全外连接(full【outer】)
交叉连接:cross
*/
#一、内连接————————inner——————————————————————*
/*
语法:
select 查询列表
from 表名1 【别名】
inner
join 表名2 【别名】
on 连接条件1
inner
join 表名3 【别名】
on 连接条件2
【where 分组前筛选条件】
【group by 分组列表】
【having 分组后筛选条件】
【order by 排序列表】
分类:
等值
非等值
自连接
*/
#1、等值连接
/*
特点:
1、支持排序、筛选、别名、分组
2、inner可以省略
3、对连接的表有一定顺序要求
4、查询结果是多表的交集部分
*/
-- -----------------------------
#案例、查询员工名、部门名(调换位置)
SELECT `last_name`,`department_name`
FROM `employees` AS e
INNER
JOIN`departments` AS d
ON e.`department_id`=d.`department_id`;
-- ----------加筛选---------------
#案例、查询名字中包含e的员工名和工种名
SELECT e.`last_name`,j.`job_title`
FROM `employees` AS e
INNER
JOIN `jobs` AS j
ON e.`job_id`=j.`job_id`
WHERE `last_name`LIKE '%e%';
-- ---------加分组和筛选------------
#案例、查询部门个数大于3的城市名和部门个数
SELECT `city`,COUNT(*)
FROM `departments` AS d
INNER
JOIN `locations` AS c