连接查询是把多张表进行记录的连接(按照某个条件进行数据的拼接);
内连接(inner join),a表和b表同时符合条件的行;
外连接,分为左外连接(left join)、有右外连接(right join)、全连接(full join是Oracle里面的,mysql是union和union all来实现);
左外连接:左表保持不动,右表在右侧滑动,用右表匹配左表。结果保留左表的所有行,右表中不匹配的行默认填充为空值NULL。
右外连接:右表保持不动,左表在左侧滑动,用左表匹配右表。结果保留右表的所有行,左表中不匹配的行默认填充为空值NULL。
全连接:包括左右表所有的行。
(1)使用union,会自动去除重复数据
(2)使用union all,不会去除重复数据
交叉连接(cross join),a表*b表的笛卡尔积,笛卡尔积在查询的时候没有太大的意义,在数学上表示所有可能性。