00:00
好,我们接下来继续继续进阶对吧?呃,那么接下来我们要进阶的呢,是进阶六,今天我们蹦了几个台阶啊,应该是这是第四个哈,我们上次不是到进阶儿了吗?现在咱们是进阶六啊对我们接下来来去介绍的呢,叫做连接查询,连接查询呢,我们又去称为对连接查询,我们的这个又去称为叫做多表多表查询,多表查询或者说多表连接啊好,那么我们什么时候会用到它呢?其实就是当我们要查询的字段来自于多个表,或者说涉及到多个表时,那这个时候呢,我们就会用到,就会用到我们的连接查询了,比如说我们举一个例子哈,看这啊,那么大家看哈,我现在呢,手里有两张。
01:00
表,一个是beauty表,是不是就是美女表呀,还有一个是鲍意思表啊,那么在这个地方呢,来看一下,我呢想去查询的呢,就是美女的这个名称,以及她对应的男朋友的名称,而她的男朋友在哪个表,是不是在这个表呀,哎,也就是要查询他对吧,要查询它,所以说我要查询的字段是不是就是来自于一个是BT表,一个是褒义字表呀,那这个时候怎么办嘞?对吧,那其实就是涉及到了多表连接了哈啊那么根据我们的想法的话,其实我们直接怎么着写代码就行了,来看下面,其实我就可以直接这么写,Select的name,是不是就是查询了这个字段呀,再加上这个字段Bo name from后面是不是跟两个表啊,其实这样也行啊,语法是没有问题的,然后加上这个beauty,加上boy,也就是此时此刻,呃,那么我的原始表是这两个的,是不是一个相当于组合了呀?
02:00
啊,相对这两个都组合了啊,Beautyt表和包表都能看了,但是我又发现假如我这样写的话,数据的话就会有问题,我们可以试一下,呃,这个地方是不是用到了一个那个呃,丢表啊,这个来自于我这个钩子,这个数据库哈,那么我们可以执行一下啊,你比方说来看一下这好,那么大家等一会也可以去执行一下哈,然后这个呢,我们来自于我们的这个钩子好好了,然后我们刷新,好已经来了一个钩库,对吧,这个里边的话就会有我们的beauty题表,那我们现在呢,先把这个beauty题表里边所有的数据给看一下,呃,Beauty啊,可能跟我PPT里边的数据不太一样,因为后面有改动啊啊,但是呢,就差不多能看到吧,呃,全是一些女神啊,都是大家喜欢的啊,这个这是给大家的福利啊,下沙雪不就是家有儿女这边的吗?
03:00
就是杨紫啊,对吧啊,行当他是个小孩是吧?然后想起那个笑话了,不是说然后看到那个刘星,刘星叫那个谁张一山是吧,说看他张一张一山不是现在就是经常演一些那个就是,嗯,就是那种爱情剧吧,算是对不对?嗯,那个不是大家看的那个春风十里里边不就有他嘛,对吧,说看他演这个亲热戏总觉得不舒服,就感觉看一个小孩一样,嗯,行吧,然后再往下看,那么我们现在呢,就是我们要查询的有这个name,还有一个就是包1NAME,呃,那么我们按照我们的这个想法呢,就继续写,那应该是报一次表,然后再是UT表,对吧?啊,哎,没没没毛病吧,哎,那么现在我们去执行是不是也能出来呀,但这个数据有问题,问题在哪啊?你看呀,是不是柳岩有四个男朋友呀?是不是苍老师也有四个男朋友呀,Angelabab?
04:00
K,是不是也有四个,这个跟实际实际不太相符吧,是不是太随便了,是不是不太好对吧?啊,然后有的说不好,应该让张无忌,这个张无忌其实也有很多女朋友了,这样来看对不对啊,那很显然跟实际不符啊,那所以说呢,像这种现象的话,我们认为是有问题的,那这种现象的话,原因是由于那我只是贸然的这样去查询的话,就相当于我拿着第一张表的每一行记录去挨个的匹配我另外一张表的每一条,因为你也没有什么筛选条件或者连接条件,所以每一条是不是都匹配成功啊,都能显示出来,也就是柳岩和他们四条是不是都能够匹配成功,哎,就出来了四遍,然后等到会苍老师,苍老师都认识对不对,哎,然后呢,去挨个的去匹配,那么也是四条,哎,那么这个里边一共是12条,那么所以最终的。
05:00
结果就是12乘以四,呃,是不是就出现刚才的效果了,那这种效果我们把它称为低卡尔乘积现象,笛卡尔知道吧,咱们在数学中学过吧,应该学过哈,笛卡尔,因为这种现象的话,就是有一个叫做笛卡尔的人发现的,所以呢,这种现象我们就命名为笛卡尔沉积现象啊,是这样的啊好,那这个笛卡尔的话呢,来注意看哈,这种现象的最终结果呢,就是导致我们所有行是不是实现完全连接呀,呃,也就是beauty表12行报四行,最终结果是48行啊哎,这是和我们实际不符的啊,那么它是如何造成的,就是因为我们没有加是不是任何连接条件呀?哎,那好吧,我们把这个地方给写一下哈,那这个就是关于笛卡尔乘积现象,好,笛卡尔乘积,首先呢,我们说一下。
06:00
这个现象的,呃,这个现象是什么?这个现象就是假如说我们表一有M行,然后表二有N好,然后我们的这个结果等于多少嘞,M乘以N好,这就是笛卡尔乘积现象,咱们数学中应该应该提到过哈,那么我们如何去解决呢?或者说如何发生的呢?先说如何发生吧,啊,如何发生的原因就是在于啊发生原因啊这样去写是不是在于没有有效的是不是连接条件呀啊那么如何去避免呢?啊,那很显然就是先加上我们有效的连接条件就可以避免,是不是这种一开始成绩啊,哎,意思是说我们呀,再去进行匹配的时候,比方说拿柳岩为例,我进行匹配的时候,不是说每这个褒义字表里面每一行都出来,那么只有我们的这个鲍易。
07:00
主上的ID的值是不是等于你这个表里边这个ID的值的时候,才是她的男朋友啊,哎,只有这种情况才行,那这个时候我再查出来,当然你看像柳岩她的男朋友的边号是八,这个里边有八吗?没有那就没有,是不是就别出来了呀啊,就没显示嘛啊然后假如说像那个我们找个有的Angelababy Angelababy她的男朋友的编号是三号,那我们实际上就去找找ID的值为三的是不是就是黄晓明啊,那这样的话再筛选出来能听懂吧啊所以说对于这两张表来讲,它的连接条件就应该是,是不是包一的ID等于这个ID啊,就这个意思哈,填上有效的临界条件啊,好吧,我们可以试一下看对不对啊,那意思是说在这个基础之上我再去加一个谁呀,Where,哎,那么后面我们再去加beauty表,里边的叫做什么来着?我们看一下是boy friend的ID啊,那就是where。
08:00
二包1FRIEND ID等于哎,我们报一次表里边的ID,哎,这就是一个连接条件,但是我们这样写它应该会报错,因为这个ID的这个值啊,对,不知道是谁的,你你这不是涉及到俩表了吗?哎,你这两个表好像所有的字段都列出来了,那你你这两个ID是不是不知道谁是谁的呀,所以说我们得怎么样一下呀,用表明限定一下,这个应该是BOT表达对不对,这个ID是指哪个表达,Bo表达,哎用这个表明打个点限定一下就行了,我们看一下对不对了,好,这样是不是就对了啊,这有的说不对,怎么张无忌仨呀,那实际中是不是张那个张无忌就就这么多女朋友啊,所以这个是对的哈,周芷若的男朋友是他,小昭的是他,张明的是他,热巴的是他,没问题吧,哎,因为我刚才让大家。
09:00
看那个数据了,本身我们的BT表里边来看一眼,是不是像周芷若她的男朋友编号也是一啊,小昭的男朋友编号也是一,赵敏的是不是也是一呀啊,所以刚才的结果是没有问题的,能看明白吧?好,这就是关于笛卡尔成绩现象的一个描述,我们说到这儿哈先。
我来说两句