My SQL学习笔记_连接查询
- 笛卡尔乘积——多表连接,数据来源于多表时
笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
分类:
SQL92标准仅仅支持内连接 SQL99标准【推荐】支持内连接+外连接(左外+右外)+交叉连接
按功能分类:
内连接:
等值连接
非等值连接
自连接
外连接:
左外连接、右外连接、全外连接
交叉连接
- 等值连接
如果为表起了别名,则查询的字段就不能使用原来的表名去限定
- 多表等值连接结果为多表的交集部分
- n表连接,至少需要n-1个连接条件
- 多表的顺序没有要求
- 一般需要为表起别名
- 可以搭配前面的介绍的所有子句使用,比如:排序、分组。
- 非等值连接
- 自连接
查询员工名称和上级名称
SELECT E.EMPLOYEE_ID,E.LAST_NAME,M.EMPLOYEE_ID,M.LAST_NAME
FROM EMPLOYEE E ,EMPLOYEE M
WHERE E.MANAGE_ID = M.EMPLOYEE_ID;
浙公网安备 33010602011771号