找回密码
 立即注册

QQ登录

只需一步,快速开始

zhanglongsheng
初级会员   /  发表于:2023-2-13 09:22  /   查看:1059  /  回复:1
1金币
本帖最后由 zhanglongsheng 于 2023-2-13 09:27 编辑

【方法总结】
在实际开发过程中,经常会遇到两个表的某个字段的比对问题.
例如,如下表A和表B,要求表B中的【编码】不包含在表A中的【编码】列中的最小值。



在学习活字格时,发现前端页面中通常的做法有两种:
1.使用2个循环:
使用两个循环嵌套起来,对两表中【编码】列的每个记录进行逐一比对是否相等即可。
2.使用1个循环:
先将表A的【编码】列用Textjoin函数形成一个长字符串,然后再用一个循环,将表B的每个编码和这个长串进行【不在里面】的比对即可。

在服务端命令中,对应的也有两种方法:
1.使用2个循环:
使用【设置变量命令】形成两个表的多行记录,然后也是使用两个循环,逐一记录比对是否相等即可。
2.使用1个循环:
由于在服务端命令中不能对【设置变量命令】形成的多行记录(数组形式)使用textjoin函数,所以就用了一个【数组属性值转字符串】的第三方命令插件,来形成长串,然后就可以使用一个循环,将表B的每个编码和这个长串进行【不在里面】的比对即可。

所以说,无论在前端,还是服务端,这两种比对的方法都是类似的,都是使用两个循环或者一个循环。因此,我们自然想到,能否不使用循环来实现上述功能。

【改善建议】
建议在下图的【操作】里面增加两个“包含”和“非包含”操作,主要用于两个表的字段进行比对,例如,表B的编码列有哪些记录不在表A的编码列中。
类似于SQL的子查询,这样,就可以不使用循环完成上述功能了。请官方考虑此方法是否可行,谢谢!
2023-02-13 于高铁上


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

目前来说如果直接在判断中取表的字段的话,一般会拿到第一行的数据, 感谢您的反馈,以上需求已被整理记入我们的内部系统,编号是:41966 ,后续产品经理会评估该需求的合理性以及实现的必要性、可行性,然后加入开发计划。欢迎您继续积极反馈,帮助我们提升和完善产品功能。

1 个回复

倒序浏览
最佳答案
最佳答案
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2023-2-13 09:22:55
来自 2#
目前来说如果直接在判断中取表的字段的话,一般会拿到第一行的数据,
感谢您的反馈,以上需求已被整理记入我们的内部系统,编号是:41966
,后续产品经理会评估该需求的合理性以及实现的必要性、可行性,然后加入开发计划。欢迎您继续积极反馈,帮助我们提升和完善产品功能。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部