码迷,mamicode.com
首页 > 其他好文 > 详细

用实例理解自连接

时间:2019-03-08 12:37:11      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:from   log   sel   art   net   博客   bsp   两种   多个   

两种情况:

1、根据条件自连接

2、无条件自连接 就是交叉连接,返回被连接的两个表所有数据行的笛卡尔积。

主要是第一种:

设计一张表:t_a

根据a的值自连接  语句:SELECT * FROM "t_a" ta,t_a tb where ta.a=tb.a

原本我由于没有考虑到有些a列里可以有重复值,因此以为数据行数和t_a表的行数相同。如以下这种情况:

①a列里没有重复值:

技术图片

结果:

技术图片

②a列里有重复值

技术图片

结果:共41条记录,太长,不全贴出来了。

技术图片

 

6*6+2*2+1*1=41

 

同理可以推出按照多个条件自连接的结果

如SELECT * FROM "t_a" ta,t_a tb where ta.a=tb.a and ta.b=tb.b的情况。这里情况应是9条,因为没有ab都是相同值的情况

技术图片

若是存在ab相同时比如表中数据如下

技术图片

 

,会出现3*3+2*2+4=17条结果

技术图片

同时自连接的作用可以参考别人的博客:https://blog.csdn.net/weiwanampdaixu/article/details/78292053

 

用实例理解自连接

标签:from   log   sel   art   net   博客   bsp   两种   多个   

原文地址:https://www.cnblogs.com/xz-404/p/10494982.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!