00:00
我挑晚上你们挑好吗?来同学们请先看,现在我们呢读了那么多了,以后我们呢可以看一下,我们现在直接呢来见一下表,那么呢建表语句由于目前我们到高级部分我不可能。再去给大家讲如何建个表,听懂了吧,这也不是今天的重点,咱们现在是不是说joining啊,而且大家看我这个建表写的engine in DB,以前你们是不是很少写这个,言下之前我们写一个类,是不是很少写一个呀,一回事啊,时长而言呢,你得明白好两个见表,一个呢是员工表,一个呢是部门表,是不是有一个员工部门左右主外键相连啊,好,来同学们看插入,那么这个呢,RD什么意思?那么这个意思呢,就是说部门的话呢,逐渐去了以后呢,部门名称location je,楼层位置,就比如说RD这个部门在11楼,HR这个部门在12层,市场部呢在13层,这个RD什么意思啊?
01:11
说research and development就是你们的研发部啊,OK,以后如果你们去到外企或者说是好的互联网公司派上简写的话,你就是RD员工多少编号RD减的那一查是不是你是研发部的员工啊,那么像这个是不是这个应该知道是吧,好,那么呢,Marketing什么意思啊,是市场部啊,OK,那么Miss部啊,就是我们以前说过的是吗?是不是后勤的那些给大家干嘛?OK,帮你装个操作系统,那么呢,你先去喝个酸奶或者吃个咖啡什么的之后搞定吧,那么呢,最后的哈,FD啦什么的,财务部啊什么之类的哈,那么最后大家看这边张三张四张五是不是都是一号部门呢?那么呢,这边注意这个一这个的主建,这这个是11是楼层位置啊,跟跟咱们没关系,这个第一条记录,我这是ID11,是不是主外建那个,那么一号是不就是研发部啊,二号是不是人事部啊,好,那么大家看插入。
02:12
完了以后我们呢,直接执行。OK,那么呢,把跑一下啊,是不是no database select呀,晕了,那么呢,Create face。DB0629O吧。那么OK use db0629,那么这个时候我现在是不是新建一个库,用到这个库了,好,那么这个时候所有的SQL1张贴好吧,好,那么呢,在开始之前一定要反复的锤炼大家的基本功,我们说过手写和机读是不一样啊,切记看好了,我们这儿这儿有个叫什么外要后面有个叫什么,所以说弟兄们刚刚开始写那七个图七个join图的时候,前三个是不是指到on后面的join condition,但是注意你写S以后,一定是先把这个join condition整明白了以后,On是不是就是主要线关联谁勾搭谁呀,完了以后我们配对了以后,是不是在while后面干嘛添加过滤的条件了?好,那么这往下走,一开始第一波是不是from后面先来个。
03:36
什么鸡啊好了,来吧,逐个逐个演示一下,诶,Select新from t BMP,各位亲几条啊好,那么这个时候de PT各位清几条啊?那么这个时候如果说我们TPL,然后de PT多少条?五乘以八是不是40哦呢,下面呢,我们呢,开打,这个时候一个一个的过。
04:08
扎扎实实的往前走,第一波是不是咱们这个中间公有部分呢?好,那么来,同学们当然在干之前呢,我们先来。哎,大家看1234注意有没有51这个部门有没有好同学们请看我这个部门号是不是12345啊,我是不是故意给他错开啊,你就当50亿是什么,某个就是有些注意这个倒不是错,就是有些人事系统他这么干的。研发部,HR部门,市场部12345是不是我实实在在的部门,每个部门就是一个主件ID就是我部门编号O吗?但是假设来了一个客人,来访人员可能他是外部协调的,刚好他要进入我们这个系统,但是请问人家只是来我们公司出差,或者假设你只是一个实习生的身份,你现在是不是暂时还没有一个固定的base啊?那么这个51是不是统称为其他部门呢?那么这个模型是不是就匹配了?好那么我们呢,往下走,下面呢我们来看看结合我们的第一图,我们呢来看看inner就义没问题吧,好的,那么呢,来吧,Select新from tbp这个是不是A表啊?那么呢,In,注意注意中间是不会有个al啊那么呢,我这就偷个懒神写了听懂,那么这个时候我们的员工表作为A表,是不是T表TPTB?
05:50
咱两个像就应啊,那么这个时候我们说过你就应你得有条件,那么这个on是不是A表的DEPTD等于B表的主键ID啊,那么这个时候我们呢,大家呢,一回车执行,大家请看啊,稍等吧,这样我对比着来看吧,那么呢,大家看what's select新from TB lp这个是不是单表好,那么dept这个是不是部门表,那么现在我一堆往下走了,以后各位亲,这个是不是两个inner join的表啊,我们可以看到只要公有部分公有部分一,那么这张表是表头是不是我们的ERP员工表,这张表有department name这个是不是我们的表头部门表两者应章join是不是两两张表要拼个阴影部分的面积,中间部分大家看123。
06:50
四请跟我讲,有没有部门的财务部五号部门有没有,有没有我们员工的八号员工,孙九这个人是不是都没有提交进来啊?那么言下之意,我们获得了我们的第一个结论,也就是说现在哥们儿我干了这事儿。
07:17
应该就应完火以后,各位亲,我们收到的效果是不是只有两者的公有部分呢?好,第一波收工,第二发过来看,同学们请看,结合我们的图,我们应该知道往这走,咱们这一块是不是要除了AB的公有,还要A的全部其他剩余内容啊,换句话就是全A,那么也就说全,那么左边跟我说咱们也刚才聊过。这个时候左表的全部不好意思啊,右表是不是有部分不满足啊,那么呢,不满足的部分我们大家可以看是不是要补烂啊,这块是七条,这个是几条,而且我们呢,可以抓图来进行会商和对比。
08:12
同学们请看此时我们要干的活,这个部分是不是量表的公有部分,言下之意是不是就是我的这小块,但是这是不是还有A的独有,对不对?那么这块大家请看,根据我们的效果和性能,我们可以看到此时八号记录这个是不是A表的独有,右边的这张表部门表并没有满足的哥们,我是不是只好给你补钠啊,好,那么呢,这是我们的第二个,第三一个,那么呢,如法炮制,这个时候咱们是不是变right了,好,Right了以后这个时候咱们大家一回车可以先看到最后的效果,那么呢?
09:06
我们呢,可以看到右表是不是长这个样子呀,好图CIRC案例DEMO的效果,那么呢,我们可以看到依旧是这样的一个原因,现在我们呢这呢是又连接,那么呢这块部分请问是不是AB的共有,好那么这块部分大家看是不是右表要全部查出来,左表有匹配的你给我写,没有匹配的是不是补难啊OK,那么呢这个呢就是我们的第三个到这前三步OK吗?好,第四个一定要整清楚哈,这就是根子啊,你把这七张就你脑子里面剩下无非就是什么什么客户啊,做下个月去面试的时候就是什么客户订单,仓储物流表或者老师学生课程表,几乎就是拿这七个作业去套,不敢说百发百中吧,但是起码各位。
10:07
同学,20分的题好歹你能做个十二十三十五吧啊OK,好,那么呢,来我们第四个,大家请看这货现在注意,其实这个是不是有点这两个的一个特例的一种杂交过来的呀,或者说白就直接往上翻,是不是left join上面再加点料给我,把中间的给我抠了呀,那么言下之意中间的抠了以后,言下之意弟兄们我这个是不是left就呀,言下之意是不是要把红框部分以上的全部剃掉啊好,因为我现在是不是只要A的独有啊好,那么这个时候我们往上走,这个来执行一下,各位亲,这个是不是AB的共有加A的独有,现在哥们我是要把这块给剁了,好那么这个时候我们说过on,后面跟的是就condition。
11:07
现在就应坎迪截止到目前的条件,能不能解决这个问题,他解决不了,我们是不是继续在家,WHY,要坎地条件啊,A要独占有B什么事吗?有没有,那么这个时候我们就会知道你A要独占了,那么言下之意,我这个B表的ID是不是必须等于none啊,你就看这条记录,这个是不是B表部门表,这个ID等于none了以后,那么相当于说只有这条就等于那上面的是不是全部被它清空了?好,那么这个时候同学们请看,合着来看了以后我们会发现这个时候跟我讲是不是只有读A呀,嗯,OK,所以说呢,这个呢,就是我们的第四表。好,那么这这个时候我们呢,还是勾下来吧,那么呢,就多了一个A的独有没问题吧,但是注意A要读,那么B是不是一定是难啊好,那么呢,这是第四个同理,第五个是不是又连接下面。
12:19
一样的出力啊,又连接右表的全部加两者的共有,那么这个时候请问我现在变成相反的B独占,还有A什么事吗?反过来讲是不是A的ID要空啊,好,那么这个时候我们呢,继续写,这个时候是不是干嘛right的这个以后Y啊,什么A的DEPTD诶稍等意思,那这个时候一回车,大家看是不是只有独立的这个部门,财务部门,五号记录的财务部门罗列出来了,好那么这个时候呢,就是我们的什么呀,直接公有的被替掉了,是不是只有B的独有啊,同学们那么好,那么呢,我们呢。
13:14
下面呢,可以看到这块是不是只能是B的独有,B要独有A是不是必须被牺牲掉,是碳啊,好,那么呢,接下来我们呢,继续第六种情况,是不是我们的full out joining全有啊,好,那么呢,Inner joining是共有,For for out joining是不是全有啊?所以说我们往上找C,大家看这个东东是不是inner join。OK,那么呢,我们呢,改吧改吧,这个时候我是不是for join啊好的,那么这个时候我呢回车好,这个时候我们呢来看看for,然后我这是不是alta就应啊好,首先一回车是不是还是报错呀,好,那么呢,这个时候我们呢要明白一个问题,大家请看。
14:23
我们首先可可能按照它表面上的意思,是不是我们的语法报错什么乱七八糟的呀,好,Inner join,我把它改回来,能不能查出来说明CQ没问题吧?好,那么来同学们,刚才有刚我看有位同学的口型说可能是我这个副没有大写,好我们呢,再来看看哈,F ull al,它写了个大写是吧,那这个呢,如你所愿,我就照着抄这种行吧,能不能,反正他的意思就是说,反正我们照着这个,这个是抄写这这这个图没问题吧,同学们好,那么这个时候逆回车是不是还是挂了,那么这儿呢,请大家记住,SQ是不支持这种语法呀,明白了吗?MYCQ是不支持,但是你用到Oracle上面是不是好使啊,好,那么所以说呢,这张图在MYQL里面是不是不好体现了,OK,它天生就不支持。
15:23
会这种语法,但是同学们你不支持归不支持,活你是不是得干啊,那么这个时候呢,我们呢,直接呢需要来看看这货是不是干嘛两者相加哈呀,那么什么叫两者相加,请问是不是这个加这个呀,然后无非就是AB的独有加AB的共有加的独有,三者合一,是不是就一统天下了,OK,那么这个时候我们呢,需要改良一下,那么呢,变通的一种法则,把我们这个目的达到,老板可不知道什么SQ99语法是不是支持什么work什么他不懂,他知道我就要这个结果,你给我查,有结果就像我们说的就OK,没结果就挂了,好,那么呢,我们呢思考一下,我们呢,现在大家。
16:24
看我们这块,哎,我去,哎呀,不好意思啊,按了一个那个手误了一下,好,那么这个时候我们select from,什么TPLEP,这是A表,那么呢,干嘛呢,Left join是不是t PL de PT这个是不是我们的B表啊,然后条件是不是啊a.de PT部门ID等于b.ID跟我说兄弟们,这个是不是咱的左联,那么呢,再来我们先分步来运行哈,谁也没有本事就是一口气吃个胖子,那么呢,来这个是不是我们的右脸,各位亲,结合我们的效果,我们的左连右连也好,只要现在你能够把左边的这儿是不是有51这条记录,八号记录啊。
17:24
把它弄成这的五号记录总共搂起来,那么跟我讲是不是这件事就摆平了,好,那么这个时候就像我们说的三部分,A的独有,AB共有加B的独有,可问题是这两者整合的时候就崩溃了,为啥公有部分这是一块,这是一块,这是不是变成四块了?那么这个时候什么样的操作既能够合并还能够去除呢?这个时候我们是不是可以这么干来,同学们,第一个这个是不是左边这长篮子好,然后回车是不是有union啊,Union完了以后,那么呢,我们把右边这个弄出来,这块的时候union是不是合并加驱虫啊,那么E回车,最后各位亲,我们是不是看到了AB的共有加,AB的独有加的独有合起来是不是我们的for out joyice全有啊O吗?这一步好,我讲慢一点哈,可能有些同学那个来没关系,有些同学可能前五个月前就是什么安啊,UN啊,那些exist啊。
18:49
啊,那些关键词学过,但是现在呢,像我们一肚子知识学了以后是不是得用啊,那么现在跟我讲,我们来看看哈,首先讲慢一点哈,有些同学那个的话不着急哈,我讲慢一点,保证大家都能听懂,各位亲,现在我们的目的是要全有负O吗?全有的部分是不是AB的独有,AB的共有加B的独有没问题,再说白点就是AB混合,然后干嘛,你是不是就像一个数学的高中数学的交集全集,差级并集补集一样的,咱是不的把去重的过滤啊,OK,这两个要拼,那么来同学们请看上面这货是不是。
19:33
全a union下面这个全B,那么呢,Union天生自带的驱虫,那么这个公有部分来,同学们,红色这部分我去。这一部分是不是AB的共有?那么再下来这一条,请问是不是A的独爻?那么呢,再下来这条是不是B的独爻?三部分一合体是不是就是副全摇,逻辑上能通吗?下面继续最后一招,咱们是不是AB各自的独有啊?那么呢,我呢,现在先不剧透,请同学们思考大概30秒,结合我给的这个case,试试你们在纸上能不能写出来。弟兄们,来看我们最后一道是不是A的独有和B的独有啊,结合上面这两个用用一拼就是全有,那么同理,横向类比递推的原则,这两个一拼是不是就是最后第七个呀?
20:47
那么所以说我们现在要干的活,我们呢,是不是要把它变成这样啊,在union之前大家看我们是不是再加Y啊,左边这个要A的独有,B是不是就得挂了b.ID is思那然后这个时候大家看我们再往这儿是不是Y呀,A的department ID is,那这个时候是不是分别A和B各自的独有啊,好,同学们E回车大家看是不是效果明显就不一样了,OK,那么呢,这个呢,就是我们的什么最后一个是不是AB两者的独有啊,OK,那么大家看我们这一个是我们的独A另外一个。
21:47
是不是我们的读B,那么结合前面这张图,上面公有部分是被轰掉了,OK,那么呢,这个呢,就是我们SQ Joy最重要的基本功。
22:00
有些同学你看了很多本CQ书,一做那个笔试题,写个学生老师课程表,三表的连接,怎么写怎么错,怎么写怎么不对,怎么写就交白卷,为啥?这就是我说的练武不练功,到了一场空。那么呢,在这儿严格的规范大家的SQ,要求大家认认真真在纸上练一遍打捞基本功,为啥?不就是为了让同学们下个月去工作的时候舒服一点,因为今天你多学一门实用的技术,明天你是不是少说一句求人的话呀?OK,那么呢,我们的CQ join就说到这儿。
我来说两句