谁可以讲讲left join/right join/inner join的区别和用法。

renliquan 2014-04-13 01:05:37
这三个东西比较晕,分别什么情况使用,差别在哪里?谁可以给大家讲一讲?
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2014-04-13
  • 打赏
  • 举报
回复
引用 3 楼 renliquan 的回复:
[quote=引用 2 楼 yupeigu 的回复:] 其实内连接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一般什么情况下使用啊。发现基本没用过这个东西。[/quote] 这个一般在产生一些组合的时候,要用到。类似于排列组合,比如1,2 和 a,b 那么cross join后就是: 1,a 1,b 2,a 2,b
guguda2008 2014-04-13
  • 打赏
  • 举报
回复
引用 3 楼 renliquan 的回复:
[quote=引用 2 楼 yupeigu 的回复:] 其实内连接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一般什么情况下使用啊。发现基本没用过这个东西。[/quote] 相当于INNER JOIN ON 1=1,没什么用。
renliquan 2014-04-13
  • 打赏
  • 举报
回复
引用 2 楼 yupeigu 的回复:
其实内连接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一般什么情况下使用啊。发现基本没用过这个东西。
LongRui888 2014-04-13
  • 打赏
  • 举报
回复
其实内连接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,不需要有任何的关联条件
zlp321002 2014-04-13
  • 打赏
  • 举报
回复
left join是以左表的记录为基础的,如果A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录 right join 和left join 相反; inner join 是相等连接; 最佳的理解,你创建两个表,关联试试,就懂了。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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