join分不清楚,请详细解释。解决方法

join分不清楚,请详细解释。
inner join 、left join、cross join 之类的有什么区别
------解决方案--------------------
这些是join的3种情况:

1、inner join就是内联接,比如 :

select *
from a 
inner join b 
        on a.id = b.id

那么,根据关联条件的字段id,只会返回,a表中有的,同时b表中也有的数据,也就是求个相交的部分。
------解决方案--------------------

3、cross join,这种是笛卡尔积,一般用的很少,而且这种join,效率比较差,因为比如现在a表有10000条数据,b表有10000条数据,那么:

select *
from a
cross join b

就会返回10000*10000 = 1亿条数据,数据量非常巨大,性能可想而知,就会非常差,只是在某些特殊的情况下使用。

需要注意的是,cross join是没有关联条件的,正因为这样,才生成了这么大量的结果集。