一、关联查询(联合查询)
1.1 什么是关联查询
关联查询:两个或者多个表,一起查询。
前提条件: 这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。
关联查询的结果,一共有7种。
(1) A ∩ B
A表中的数据,能在B表中找到对应的记录
B表中的数据,能在A表中找到对应的记录。
∩∪
(2)A + A ∩ B
取A表的全部数据,和B表中,能在A表中找到对应记录的数据。
(3)A - A ∩ B
只取A表中独有的数据(在B表中不存在的)
(4)A - A ∩ B
二、 内/外连接
(1) 内连接 inner join
(2) 外连接 outer join
左外连接 left outer join 或 left join
右外连接 right outer join 或 right join
全外连接 full outer join 或 full join
但是mysql不支持全外连接。
MySql使用关键字union 合并其他的查询结果,实现全外连接的效果。
内连接 ----> A ∩ B
左连接 ----> A 或 A - A ∩ B
右连接 ---->B 或 B - A ∩ B
全外连接 ----> A ∪ B 或者 A ∪ B - A ∩ B
mysql通过关键字union实现
A ∪ B = 左连接的A union 右连接的B
A ∪ B - A ∩ B = 左连接的A - A ∩ B union 右连接的B - A ∩ B