mysql求两个查询交集的方法:首先查满足单组变量键值对的流程实例id;然后将每个变量键值对作为条件都分别查出对应的流程实例id;最后对这两组流程实例id取交集,这样得到的就是想要的结果了。

更多相关免费学习推荐:mysql教程(视频)
mysql求两个查询交集的方法:
一、项目需求:
需要获取包含一些流程变量(数量不确定,且必须都包含,不能只含其中某几个)的流程实例的实例id
二、详细说明:
1、流程变量表act_hi_varinst
字段:PROC_INST_ID_(流程实例id)、NAME_(变量名)、TEXT_(变量值)

图1
千帆AppBuilder
百度推出的一站式的AI原生应用开发资源和工具平台,致力于实现人人都能开发自己的AI原生应用。
174 查看详情
2、现在需要查询包含变量formId=142和approveType=sealApply的对应流程的实例id
如图1,只要查出红线框出的值,最终结果为

图2
三、代码实现
1、首先尝试了使用in的写法,查询结果跟图1一样(下面查询语句表达的意思是:找出包含变量值为formId=142或approveType=sealType的流程的实例id,多个变量条件只要有一个满足,就将该行取出来),该方法不可行
SELECTahv.PROC_INST_ID_,ahv.NAME_,ahv.TEXT_FROMact_hi_varinst ahvWHERE(ahv.NAME_, ahv.TEXT_) IN (('formId', '142'),('approveType', 'sealApply'));
2、(可行方案)尝试使用交集(mysql本身没有交集的实现,只能自己模拟实现了)
查询思路:先查满足单组变量键值对的流程实例id,将每个变量键值对作为条件都分别查出对应的流程实例id(当前例子下,会有两组流程实例id),最终对这两组流程实例id取交集,这样得到的就是想要的结果了
SELECTPROC_INST_ID_FROM(SELECTahv.PROC_INST_ID_FROMact_hi_varinst ahvWHERE(ahv.NAME_, ahv.TEXT_) = ('formId', '142')UNION ALLSELECTahv.PROC_INST_ID_FROMact_hi_varinst ahvWHERE(ahv.NAME_, ahv.TEXT_) = ('approveType', 'sealApply')) tGROUP BYPROC_INST_ID_HAVINGcount(PROC_INST_ID_) = 2;
以上就是mysql如何求两个查询的交集的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1077802.html
微信扫一扫
支付宝扫一扫