Join可以分为两种
①implicit join
②explicit join
举例如下:
类型 | SQL举例 |
explicit join | SELECT * FROM A a JOIN B b ON a.id = b.pid; |
explicit join | SELECT * FROM A a INNER JOIN B b ON a.id = b.pid; |
implicit join | SELECT * FROM A a,B b WHERE a.id = b.pid; |
implicit join的意思是说,where语句其实也是属于一种join
只是在sql中没有表现出来.
#########################################################################################################################################################
join类型 | 解释 | 图解 |
inner join | 两张表中都有的数据才会显示 | ![]() |
left join | 则显示a表中存在的全部数据及a、b中都有的数据, a中有、b中没有的数据以null显示 | ![]() |
right join | 显示b表中存在的全部数据及a、b中都有的数据, b中有、a中没有的数据以null显示 | ![]() |
full join | 两张表中所有数据都显示,实际就是inner +(left-inner)+(right-inner) | ![]() |
cross join | 笛卡尔积(排列组合) | 没有合适的图来表达 |
Reference:
[2]在python的dataframe中进行类似于mysql的join操作(持续更新)