DB2数据库中left join/right join和inner join中的关联的字段无顺序的区别

DB2数据库中left join/right join和inner join中的关联的字段无顺序的区别?

这是我在学习SQL中遇到的有点疑惑的问题,因为老是看到朋友写的代码,在关联表的时候,left join有时候表的主键在左边,有的时候在右边,这让我有些不解,因为在C语言中不是这样的,C语言中等号的左右是有区别的,等号是赋值,如a=b;意思是把b的值赋给a;像SQL的等号就只是单纯的两个值相同.

不经常写东西,可能说的不是很明白,也请各位看官们见谅,好了,以下是我的一个例子,没有截图显示代码运行的结果(抱歉)。

至于有关SQL的关联问题,不明白的可以去这个W3Cschool(https://www.w3cschool.cn/sql/)这个网站去瞧瞧,很适合初学者。

/*inner join 与 left join 中的关联 a.user_no = b.user_no 的顺序

--左右的位置没有区别的
(1)
select user_no,
user_name,
user_sex, 
  from tmp_whg_test a
  left join tmp_whg_user_information b on b.user_no=a.user_no


(2)
select user_no,
user_name,
user_sex, 
  from tmp_whg_test a
 inner join tmp_whg_user_information b on b.user_no=a.user_no


(3)
select user_no,
user_name,
user_sex, 
  from tmp_whg_test a
 right join tmp_whg_user_information b on b.user_no=a.user_no

*/

a.user_no 和b.user_no 放置位置是没有顺序关系的,意思是放在左右都可以,但是关联的表多了之后,尽量有个规范的放置顺序,比如:统一主表a表的a.user_no=b.user_no,更加便于代码优化和检查;

以上是我学习中所遇到的问题,及自己验证后给的结论,若有高见,请指明。


发布了3 篇原创文章 · 获赞 0 · 访问量 2636

猜你喜欢

转载自blog.csdn.net/qq_32942215/article/details/80847103