00:00
嗯,非等值连接说完了之后啊,还有一个。叫做字连接。顾名思义。自己跟自己连。之前咱们写写这个表连接的时候,都是这个表和这个表这两张表做关联是吗?而现在呢,是。一张表中。自己和自己玩,就是左手跟右手有点像,那个左手和自己右手。石头剪子布是吧?哎,自己跟自己玩啊来,那什么样的需求会自己和自己玩呢。真就有。比如说看这。嗯,比如说我把这个需求写啊。比如说这个这个。一张表中。有多层。的业务含义。多层的业务含义,就需要含义啊。就需要自连接来看咱们的员工表。
01:03
这张表我认为具有多层含义,啥含义呢?大家看啊,因为我发现了。这张表里边儿一共25个,咱们公司一共有25个成员,这25个成员中有一部分叫做领导,有一部分叫做普通员工,OK。几个领导忘了八个吧。好像是八个吧。七八个是吧,到时候再查一下哈。哎,好像是八个领导,17个普通员工,这样的话,你看是不是满足这个需求啊,这张表中有两种身份。两种身份。好,那咱们就可以用到了字连接。哎,自来接好,那咱们怎么去怎么来呢?嗯,比如说我要找一下谁是领导啊。寻找啊,就谁是领导呗。
02:02
谁是领导?OK。啊,咱们可以这么去干啊,看好了。我这查一下员工的编号,是不是就ID啊员工编号,然后呢,再查一下他的first name。再来个钱吧。Salary。好,正常这么执行,查这三列。然后呢,咱们来看啊。来自于员,员工表有了是吧?现在呢,咱们这个里边。这个里边你这样查询的结果,能看出谁是领导,谁是普通员工吗?不能吧?看好了,我这么干的。来自于这张表,我把它起个表名,它叫E表。逗号隔开em,它叫M表。我取的什么操作来自于这个,这俩表不一样吗?不一样,我给它起了个别名。
03:01
起了个别名啊。这个员工我就认为是一。将。员工。看作。成两张相同的表。把这一张表看成两张相同的表,那么然后起个别名呗。对吧,呃,分别为。员工表为B表。领导表。M。好,你把这句话先给它忽略掉,如果这样看的话。是不是有点类似于两张表的表关联了?这个表你一表和M表嘛,做表关联嘛。两张表吧。那咱们我给它起个别名,那这是两张表,你可以把它看成就是一表,这个就是M表。那他俩的关联条件怎么写呢?
04:02
他俩关联条件什么关联条件。我是普通员工。我是普通员工,我这写着呢吗?员工表啊。普通员工的。领导ID。等于。领导的。艾迪。OK是吧?就是我要是一个小小职员的话,我得看看我领导是几号。我领导是二号,那么我就上领导这个表里边儿看一看,普通ID为二的是谁,是不是这意思啊。啊,报错了,因为啥嘞,你看。两张表都是员工表,然后这个列这个列这个列我怎么知道是E的还是M的E的M的D的M呢。不知道是吧。那你说咱们这块应该写成啥嘞。
05:02
能一样吗?我现在找的是谁呀?是不是领导,谁是领导啊?那么我查的就是领导的ID,领导的名,领导的钱。所以我应该用什么?UE。不是领导的吧?领导是M对吧。哎。M。我了个去好多呀。还记得这几个ID吧?没啥问题吧?是这几个哥们都是领导吧?反正没超过十嘛,是吧,然后现在是这个这个重复了是吗。简单呀,一个关键字叫什么,第一次。T,是吧,去重复搞定这些人就是零了。几个?八个。这些人就是领导。看清了吧,这就是自己跟自己玩。
06:00
非得自己左手和右手争出个谁老大谁老二是吧?哎,他这个一个表里有多种业务的时候,就是把它这样看。把它分成两个业务表啊。啊,那么这种情况其实用的还是挺少的啊,挺少的。因为有这样的,呃,行了吧,这句话。补个补个刀啊。自连接。用法。因为可以用。可以用子查询替代。可以用紫砂菌替代。好,现在问题咱们来了,我想知道电子查询怎么查,谁是领导?用子查询,查一下谁是领导。这是简单吧。查询。所有人的manager看啊。查询。Mana这样ID。
07:00
From员工表。好,这是所有人的ID吧。然后。空虚了。这个这个这个。ID is空。去重复。DISTIC。好,这就是所有领导人的员工ID了吗?对吧。套一层。From员工。然后条件是员工编号。在以下范围内。写完了。几个?八个吧。OK。这就是子查询,所以说我说用子查询。比这种要优秀是吧。啊,这种其实。写着倒是挺简单,但是这个分析起来还是很麻烦的,而子查询呢?
08:00
再次查询更直白一些。好了,这就是咱们刚要说的叫四连接啊。
我来说两句