sql92语法–连接查询
含义:又称为多表查询,当查询的字段涉及到多个表时
笛卡尔乘积现象:表1有m行,表2有n行,结果m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
分类:
1.按年代分类:
sql92标准–仅仅支持内连接
sql99标准【推荐】–支持内连接+外连接(左外和右外)+交叉连接
2.按功能分类:
内连接
等值连接
非等值连接
自连接
外连接
左外连接
右外连接
全外连接
交叉连接
一、等值连接
①多表等值连接的结果为多表的交集部分
②n表连接,至少需要n-1个连接条件
③多表的顺序没有要求
④一般需要为表起别名
⑤可以搭配前面介绍的所有子句使用,比如排序,分组,筛选
案例1:查询女神名和对应的男神名
SELECT 'name',boyName
FROM boys,beauty
WHERE beauty.boyfriend_id=boys.id;
案例2:查询员工名和对应的部门名
SELECT
last_name,department_name
FROM
employees,departments
WHERE
employees.`department_id`=departments.`department_id`;
1、为表取别名
好处:
①提高语句简洁度
②区分多个重名的字段
注意:如果为表起了别名,则查询的字段就不能使用原来的表名
案例1:查询工种号、员工名、工种名
SELECT
last_name,e.job_id,job_title
FROM
employees AS e,jobs AS j
WHERE
e.`job_id`=j.`job_id`;