建一个测试表A和B并给表里插入数据,如下图所示:
1.join on用法,返回两张表中相等的数据
select * from testa join testb on aid=bid
结果:
与join on 执行结果一致的是select * from testa where aid in(select bid from testb )
也与select * from testa,testb where aid=bid执行结果一致
2.left join on 用法,以左表为主表,左表查询的是所有数据,右表查询符合左表的数据
select * from testa left join testb on aid=bid,以testa为主表,查询testb中和testa相同的数据,若数据只存在于testa中,testb不存在,则查询出来的testb字段为空
3.right on 用法,以右表为主表,右表查询的是所有数据,左表查询符合左表的数据
select * from testa right join testb on aid=bid,以testb为主表,查询testa中和testb相同的数据,若数据只存在于testb中,testa不存在,则查询出来的testa字段为空