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

金素妍 2014-02-02 07:29:12
inner join 、left join、cross join 之类的有什么区别
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
webhermit102 2014-12-14
  • 打赏
  • 举报
回复
其他人知道吗,帮顶
LongRui888 2014-02-02
  • 打赏
  • 举报
回复
3、cross join,这种是笛卡尔积,一般用的很少,而且这种join,效率比较差,因为比如现在a表有10000条数据,b表有10000条数据,那么: select * from a cross join b 就会返回10000*10000 = 1亿条数据,数据量非常巨大,性能可想而知,就会非常差,只是在某些特殊的情况下使用。 需要注意的是,cross join是没有关联条件的,正因为这样,才生成了这么大量的结果集。
LongRui888 2014-02-02
  • 打赏
  • 举报
回复
2、left join就是内联接,比如 : select * from a left join b on a.id = b.id 那么,根据关联条件的字段id,会返回a中所有的记录,比如a表中有10条记录,那么至少就会返回10条数据,同时,b表中的id ,能和a表中的id相等的,那些记录,也能返回,比如: a表: id 1 2 3 b表: id 3 那么上面的语句的返回结果就是: a.id b.id 1 null 2 null 3 3 对于b表中,没有和a表连接上的部分,就会显示为null的。 也就是left join,是以左边的a表为主,b表中的数据,能连接上的就显示,连接不上的就显示为null
LongRui888 2014-02-02
  • 打赏
  • 举报
回复
这些是join的3种情况: 1、inner join就是内联接,比如 : select * from a inner join b on a.id = b.id 那么,根据关联条件的字段id,只会返回,a表中有的,同时b表中也有的数据,也就是求个相交的部分。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧