目录
MySQL通过join实现表的关联,关联方式主要有三种。
有两个表用于下面的测试:
select * from test;
select * from test2;
结果分别为:
1、left join
left join表示以左边的表为基准,将右边的表的内容加入到左边的表中。此时,新表的行数和左边的表完全相同,凡是左边的表中有的记录,新表中都有;如果右边的表没有,则用null补齐。
命令:
select * from test left join test2 on test.name = test2.name;
结果:
2、right join
right join和left join相反,是以右边的表为基准。
命令:
select * from test right join test2 on test.name = test2.name;
结果:
3、inner join
inner join类似于取两张表的交集,只有两个表中都有的项才会添加到结果表中。
命令:
select * from test inner join test2 on test.name = test2.name;
结果:
4、full outer join(Oracle)
还有一种取并集的操作,但是这种语法在Oracle中支持,而在MySQL中并不支持。
full outer join类似于取两张表的并集,凡是两个表中有的都会添加到结果表中。如果是一张表中有而另一张表中没有的情况,那么会使用。