下面介绍一下 inner join, left join, right join这者之间的区别
现在我假设有A表和B表
left join
select * from A a left join B b on a.aid = b.bid;
这时以左边的A表为基础表,A表的数据全部显示, B表的数据只显示符合on后条件表达式的进行显示,右边字段数据不足的用null填补
right join
select * from A a right join B b on a.aid = b.bid;
这时以右边的B表为基础表,B表的数据全部显示, A表的数据只显示符合on后条件表达式的进行显示, 左边字段数据不足的用null填补
inner join
select * from A a inner join B b on a.aid = b.bid;
当使用inner join进行查询时, 只显示符合on后的表达式的数据才可以进行显示, 就是说只显示两个表中都有的数据, 单方表包含的数据不会进行显示,所以使用inner join时查询 出的表中不会出现null.