**连接查询**
1.连接查询定义:连续查询又称多表查询,当查询的字段来自于多表时就会用到连接查询。
2.连接查询的分类
- 按年代分:sql92标准:仅支持内连接。
sql99标准:支持内连接,外连接(左右外),交叉连接。
2.按功能分:内连接(等值连接,非等值连接,自连接)
外连接(左外连接,右外连接,全外连接)
交叉连接
内连接——等值连接总结
1.多表等值连接的结果为多表的交集部分。
2.n表连接,至少需要n-1个连接条件。
3.可搭配排序,分组,筛选等语句使用。
内连接——非等值连接
1.非等值连接的连接条件是大于或小于不会是等于。
2.可以搭配排序,分组,筛选等语句使用。
外连接——左外连接
1.以左侧表为主表,右侧表为从表,这是左外连接。
2.应用于查询一个表中有,另一个没有的记录。
3.
以图片为例,左外连接=内连接结果+A主表中有而B中没有的
外连接——右外连接
全外连接
1.全外连接=左外连接+右外连接。(MYsql中不支持全外连接)
##交叉连接(笛卡尔积)
笛卡尔积原本是代数的概念,他的意思是对于两个不同的集合A,B。对于A中的每一个元素,都有对于在B中的所有元素做连接运算 。可以见得对于两个元组分别为m,n的表。笛卡尔积后得到的元组个数为m x n个元组。而对于mysql来说,默认的连接就是笛卡尔积连接。