1,Join:SQL查找中语句中重要的操作之一,用于把来自两个或多个表结合起来,生成新的关系表。常用的Join类型有:内连接(Inner Join)和外连接(outer join),外连接又分为:左连接(Left Join)、右连接(Right Join)和全连接(Full Join)。
2,实验环境数据:table1和table2两个表,要求是字段table1_id和table2_id相等。
table1
table2
3,内连接inner join:即交集,table1和table2中都有的数据。要求是:table1_id和table2_id字段相等的数据。
select table1.*, table2.* from table1 inner join table2 on table1.table1_id=table2.table2_id
inner join
inner join
4,左连接left join:返回左表的所有行,且右表与左表完全匹配的右表行,其它匹配不上的为NULL。
select table1.*, table2.* from table1 left join table2 on table1.table1_id=table2.table2_id
left join
left join
5,右连接right join:返回右表的所有行,且右表与左表完全匹配的左表行,其它匹配不上的为NULL。
select table1.*, table2.* from table1 right join table2 on table1.table1_id=table2.table2_id
right join
right join
5,全连接full join:返回两个表各自的匹配或匹配不上的所有行,匹配不上的为NULL。
select table1.*, table2.* from table1 full join table2 on table1.table1_id=table2.table2_id
full join
full join
备注:外连接的“OUTER”关键字能够省略不写(如left outer join = left join);内连接只会返回满足连接要求的记录,而外连接则是内连接的扩展,它不仅会返回满足要求的记录,况且还会返回不满足连接要求的记录。
|