inner join(内连接)
内连接:表A和表B以元组为单位做一个笛卡尔积,记为表C,
然后在C中挑选出满足符合on 语句后边的限制条件的内容。
explain select * from t1 inner join t2 on (t1.id=t2.id)
也有存在多表join的情况
select * from t1 join t2 using(stu_id) join t3 using(course_id);
通常情况下会先join前面的,单不同的解释器可能存在偏差,需要测试
inner 可以省略
left join(左连接)
左外连接:在内连接的基础上,将A中有但C中没有的元组也加上。
由于C的列数比A的行数多,所以这新增的元组左边照搬A,右边为null。
explain select * from t1 left join t2 on (t1.id=t2.id) where t2.* is null
right join(右连接)
右外连接:在内连接的基础上,将B中有但C中没有的元组也加上。
由于C的列数比B的行数多,所以这新增的元组右边照搬B,左边为null。
explain select * from t1 right join t2 on (t1.id=t2.id) where t1.* is null
full join(全连接)
全外连接:相当于在内连接的基础上同时做左连接和右连接,
表A和表B中的都要,两边不满足条件的都为null。
explain select * from t1 full join t2 on (t1.id=t2.id)
本站文章,未经作者同意,请勿转载,如需转载,请邮件customer@csudata.com.
0 评论
添加一条新评论