首页 > 其他 > 详细

JOIN连接

时间:2020-04-22 21:58:35      阅读:68      评论:0      收藏:0      [点我收藏+]

转载

以下使用oracle进行测试的

先看数据

A表

技术分享图片

 

 B表

技术分享图片

 

 (一) INNER JOIN  内连接是最常见的一种连接,只连接匹配的行。

需求:现在想获取A表中Name值等于B表中Name值的数据,正确结果应该是只有测试2这一条数据

技术分享图片

 

 扩展:现在想获取A表中Name值等于B表中Name值的数据且条数是2条以上的数据

1、先使用name进行分组查出2条以上的数据 :select  t.name from ATEST t  JOIN  BTEST a on t.Name = a.Name group by t.name  having count(*) >=2

2、再去查找详细的数据: select * FROM  ATEST R WHERE (R.NAME) IN(select  t.name from ATEST t  JOIN  BTEST a on t.Name = a.Name group by t.name  having count(*) >=2)

(二)LEFT JOIN  :返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。

需求:导出数据,要求A表全部字段以及B表中与A表Name相同的HAHA字段数据

技术分享图片

 

 

(三)RIGHT JOIN:返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。

原理同二

(四)FULL OUTER JOIN  从左表 和右表 那里返回所有的行。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替

 

JOIN连接

原文:https://www.cnblogs.com/macT/p/12755759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!