00:00
好,同学们啊,那么最后呢,再给大家说一下关于我们的一个两个函数,一个是业务的,另外呢,一个就是join。呃,此处啊,你会发现我们这个脚本呢非常自由,这个查询呢,我可以复制一遍啊,再次粘贴啊,我写两次from也是可以的,呃,但是我们知道大家平时写过circle啊,如果以前写过circle的话,要注意一个问题。呃,就是我们的这个一个SQL语句,哎,它返回的是不是应该是一张表啊。如果你这个SQL语句执行完,返回两张表呢,是不是有点奇怪啊,所以说我们现在呢,你可以看到啊。我们现在呢,写了两个两个from啊,我去点击some看一下效果。好哎,你会发现这里面呢,就直接报错了啊,说你这个返回了,哎,比一个更多的结果。啊,但是呢,大家要注意这里面又说,哎,是是你通过这个result名称返回了多个结果,哎,这个大家什么意思呢?我们可以去啊,我们先把这个删掉。
01:02
啊,叫这个注释掉或者删掉删删掉吧,啊,我们下载这个先提交一遍啊,然后下载这个CSV。好,去我们的Vs code里面看一下。呃,那么这个呢,就是我们的一个CSV啊,此处呢,我去信任窗口啊让他。呃,使用我们的这个插件可以看到颜色。啊,你现在可以看到这里面呢,有一个字段叫result啊,这个大家不知道什么意思,先不要紧啊,但是呢,你需要知道一件事,这个result呢,它有一个默认的名称叫下划线result,也就这个CSV里面啊,这个蓝色逗号之前其实每一行都有一个值啊,叫下划线result。好啊,那么这意味着什么呢?大家可以看到啊,我这个table啊,包括这个start stop time value,是不是我表里面的一些数据啊,说明在我们的前端啊,在我们的前端页面。一直有一个字段没有显示出来,就是下就是这个result这个字段啊,就result这个字段啊,所以说呢,它被我们的前端页面呢,给吞掉了,故意不给你显示。
02:10
啊,这里呢,直接告诉大家这个它的运行运行原理啊,就不扯太多了,其实呢,我们的这个提交一个X脚本之后呢,它会在这个脚本里面去自动检测啊,最后一个返回的数据类型为表流的这么一段代码,也就是说我在整个脚本里面,比如说我在后面还有一些呃操作,比如说X乘以Y,呃,包括这个用一个变量给它接入。啊,比如说这个十乘以20吧。然后X等于十乘20啊,那么这个后面呢,还有代码,但是呢,这个脚本在执行的时候呢,会检测到啊,从后往前数,发现你这一个地方,哎,它返回的是一个表流,所以说呢,它就会自动把这个地方啊当做一个我们的整个执行脚本的返回结果来处理,那么处理的方式呢,其实是给它后面默认啊,就是偷偷的再加上一个管道函数,叫做业务的YIELD,哎,那么这个你会发现它有一个参数名称叫做name。
03:17
哎,此时我们传进去,然后它呢,就会在背后呢,悄悄的给它加上一个下划线,Re UT啊是这么一个操作,此时呢,我给它改名称,我改成Tony toy,然后点击提交。好,你会发现呢,这里面你会发现,看看到啊,这个table现在是不是Tony,然后现在再给它注射掉。好。注意这个位置啊,现在table叫Tony。哎,是我们这个表流的名称,再次提交你会发现呢,这个表流的名称呢,变成了result啊,你你不要把它当做这个子表啊,其实这个地方啊,我们还说它通过字段的问题,现在呢,我先去切成这个Tony啊,先把这个注释给放开。
04:03
点击提交。哎,看看这个效果变了没有,然后再点击下载CSV啊,查看这个CSV。好,你会发现这个result的名称变成什么呀,是不是变成托尼了,哎,所以说这个时候我们说,哎刚才报的是什么?报的是由多个表流以这个下划线result的名称啊来进行返回,而我们的Fla脚本呢,会给我们脚本里面的表流呢,默认加上这么一个,呃,一个一个管道函数,那么我们知道就是这个管道函数呢,既然跟你说内幕呢啊,在一个脚本里面不能撞,那我们可以尝试把它错开。哎,此时这么一写,然后呢,我这个名称变一下。啊,比如说就叫杰克JCK,呃,那么现在这张代码可以跑了吗?会还还会出错吗?点击提交试一下。好,你会发现这段代码只要跑通了啊,我点提交没有出问题,然后看一下原始的图,还能看吗?也能看。
05:04
但是呢,这个序列图里面呢,有个问题啊,我们把这个光标往上一定位,你会发现呢啊,这里面不是五个序列,是十个序列,它有一个字段叫result,然后名称呢,分别叫Tony和杰克啊,也就是说因为这个字段把我们这个啊,原先的五个序列变成了十个序列,现在呢,再次下载CSV啊,我们点击看一下。好,可以看到这里面是一张表啊,再往下拉啊,这是一张表流啊,再往下拉。好,你会看到什么?哎,这不这个CSV又来了一遍,这第二个表流,而且这个result名称叫什么杰克,也就是说我们lax脚本呢,通过指定这个表的名称的方式啊,让我们直接在这个脚本里面一次执行返回了两张表啊,那么这就是我们一个,呃,怎么说呢,背后处理的逻辑大家知道就行了,但是这种啊。啊,千万不要在一个脚本里面呢,去返回两张表,这个其实是一个不太好的实践,呃,那么这里允许你写两个form,什么意思呢?其实是啊,其实是为了join考虑的。
06:12
哎,为了照唤考虑,也就是说呢,大家去写这个脚本的时候呢,啊,可以从两个不同的数据源呢,去查数据,然后把它召唤起来啊,但是我们这节课呢,并不会去讲解这个join文怎么用,大家呢,有兴趣的话可以去看一下官方文档。啊,可以去在这里面搜一下join,可以看到这里面呢有招,包括这个全join,这个内部join啊,左join右join这些都有。啊,为什么不讲这个join呢?哎,是因为这个场景比较少。啊,那你肯定说照唤场景不少,比如说我这个,呃,刚才这个做的数据里面不是有车辆吗?那么车辆有扣的等于零一吧,对吧,但是我的数据里面没有这个车的颜色,没有这个车的品牌,没有这个车的排量啊,那么这些东西,这些信息你都需要join进来啊,啊,但家注意啊,这个join要做的话呢,也不是在这个啊,我们的这个in Fla DB里面内部来做啊,并不是说去通过定时任务或者别的东西来做,呃,如果说你要是做join的话呢,我推荐你用Java啊,或者你的什么编程语言,或者说你Python啊,什么乱七八糟的,先去查in Fla DB,把这个数据查出来,然后在程序内部,在Java这边来完成joinva操作,为什么?因为我们的in Fla DB里面,你这个from它不支持缓存啊,不支持缓存。
07:31
如果说我车辆的信息表有1000行。啊,1000行,然后我在这个in DB里面呢,去做一个定时任务,每十秒钟呢去执行一次这个啊这个查询,然后呢,再去我这个MYSQL里面啊,比如MYSQL里面放了一个1000行的这个信息表啊,再查询MYSQL里面去进行一个操作啊,那么会导致一个什么问题呢?就是你的in发B,每次都要先去查询MYSQL里面这1000多行数据啊,然后之后再在这个程序内存里面进行一个join,那么这是非常不好的,那通常来说,我们现在的一个处理方案的通常来说是用red啊来做一个外置的缓存,呃,那么在我们的E发B里面呢,显然目前为止啊,没有办法去实现这种架构,因为我们的这个Fla脚本语言呢,它并不支持以red作为数据源。
08:19
另外如果你对这个red呢,做一层这个HTTP服务啊,让我们的这个in DB呢去查询,那么这个时候的行为呢,也是也算不上是join了啊,那么这个时候呢,其实你要使用这个啊map的方式来做这种功能啊,那么这里呢,就是给大家简单提一下啊,如果说你这个生产商呢,非常有需求,必须要做这个招的话呢,你可以去啊自行的参考文档。啊,那么这呢,就是我们关于flash语言里面的介绍的最后两个函数啊,我们知道这个flash语言里面呢,还有很多函数,那么随着我们后面的示例呢,会给大家再介绍几个,呃,这个函数呢,那么多,不可能给大全部介绍完,呃,所以说呢,在课程的过程中呢,我们给大家说了这个文档该如何使用,所以说真正开发过程中,大家还是要需要需要去这个啊实时的参考文档,一边看文档呢,一边来写我们的Fla脚本。
我来说两句