笔记196 在两张不同的表做连接有3种join类型
笔记196 在两张不同的表做连接有3种join类型
1 --在两张不同的表做连接有3种join类型 2 -- 3 --1、full join 4 -- 2、inner join 5 -- 3、outer join(left outer join、right outer join) 6 -- 7 --在上面两个例子中我们看到的是inner join。如果我们连接表自身就叫做self join。这个特殊类型不会混淆连接类型。 8 9 --FULL JOIN:full join和笛卡尔有些不同,笛卡尔积会获取所有可能的结果。而full join将匹配的结果与所有左边的表中不匹配右边的行和右边的表中所有不匹配左边的行加在一起, 10 --在不匹配的地方使用NULL代替。结果行数=匹配行数+左表剩余行数+右表剩余行数。(我的理解就是左表行数+右表行数) 11 12 13 --LEFT JOIN :左连接(left join)保证左表中的所有行都有,而当不匹配的时候以NULL填充右表字段 14 15 --rigth JOIN :反过来,右连接(right join)保证右表中所有的行都有,而当不匹配的时候以NULL填充左表字段。 16 17 --INNER JOIN :就是只列出匹配的行 18 19 20 --SELF JOIN:表连接自身叫做self join。为了解释一下这个让我们看如下图中的employee表。EmployeeID是此表的主键, 21 --ReportsTo引用了此表的主键。我们可以想象成这样,ReportTo字段引用代表该雇员的上司,其上司同样也是雇员