谁可以讲讲left join/right join/inner join的区别和用法。
这三个东西比较晕,分别什么情况使用,差别在哪里?谁可以给大家讲一讲?
------解决方案--------------------left join是以左表的记录为基础的,如果A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录
right join 和left join 相反;
inner join 是相等连接;
最佳的理解,你创建两个表,关联试试,就懂了。
------解决方案--------------------其实内连接inner join,就是比如2个集合,一个是1,2,3 ,另一个是2,3,4 那么inner join只会出来,大家都有的,也就是2,3
而如果是left join,那么首先对主表,会出来所有的,也就是1,2,3 而对子表,只会出来能链接上的,也就是2,3。
另外,比较特别的是cross join,就是比如1,2,3 和 2,3,4,那么cross join之后,就变成了9条,也就是3*3=9,不需要有任何的关联条件
------解决方案--------------------
相当于INNER JOIN ON 1=1,没什么用。
------解决方案--------------------
其实内连接inner join,就是比如2个集合,一个是1,2,3 ,另一个是2,3,4 那么inner join只会出来,大家都有的,也就是2,3
而如果是left join,那么首先对主表,会出来所有的,也就是1,2,3 而对子表,只会出来能链接上的,也就是2,3。
另外,比较特别的是cross join,就是比如1,2,3 和 2,3,4,那么cross join之后,就变成了9条,也就是3*3=9,不需要有任何的关联条件
cross join一般什么情况下使用啊。发现基本没用过这个东西。
这个一般在产生一些组合的时候,要用到。类似于排列组合,比如1,2 和 a,b 那么cross join后就是:
1,a
1,b
2,a
2,b