1、三表连查
案例:查询每个工种、每个部门的部门名、工种名和最低工资
SELECT d.department_name, j.job_title, MIN(e.salary) 最低工资
FROM departments d , employees e, jobs j
WHERE e.‘department_id’=d.‘department_id’ AND e.‘job_id’=j.‘job_id’
GROUP BY e.‘department_id’,e.‘job_id’;
2、非等值连接
案例:查询员工的工资以及对应的工资级别
SELECT salary,grade_level
FROM employees e,job_grades g
WHERE e.‘salary’ BETWEEN g.‘lowest_sal’ AND g.‘highest_sal’;
3、内连接
join连接,属于sql99语法
分类:
内连接:[inner] join on
外连接:
左外连接 left 【outer】 join on
右外连接 right【outer】 join on
全外连接 full 【outer】 join on ,mysql中不支持!!! sqlserver 和oracle 没有问题
*/
语法:
select 字段1,字段2,…
from 表1
inner join 表2 on 连接条件;
外连接
语法:
select 字段1,字段2,…
from 表1
left|right 【outer】 join 表2
on 连接条件
4、子查询
语法
select 字段1,字段2
from 表1
where Id in(
select 字段1 from 表2
)
分类:
单行子查询:子查询的结果只有一个值,使用单行操作符(> < >= <= = <>)
多行子查询:使用多行操作符(any、all、in、not in)
来源:oschina
链接:https://my.oschina.net/u/4256554/blog/4437185