mysql怎样求两个查询的交集
发布时间:12/01 来源:未知 浏览:
关键词:
mysql求两个查询交集的办法:第一查知足单组变量键值对的流程实例id;然后将每个变量键值对作为前提都离别查出对应的流程实例id;最后对这两组流程实例id取交集,这样得到的就是想要的效果了。
图2
三、代码实现
1、第一尝试了运用in的写法,查询效果跟图1同样(下面查询语句表达的意思是:寻出包括变量值为formId=142或approveType=sealType的流程的实例id,多个变量前提只有有一个知足,就将该行掏出来),该办法不成行
SELECT ahv.PROC_INST_ID_, ahv.NAME_, ahv.TEXT_ FROM act_hi_varinst ahv WHERE (ahv.NAME_, ahv.TEXT_) IN ( ('formId', '142'), ('approveType', 'sealApply') );
2、(可行方案)尝试运用交集(mysql自身没有交集的实现,只能本人模拟实现了)
查询思绪:先查知足单组变量键值对的流程实例id,将每个变量键值对作为前提都离别查出对应的流程实例id(目前例子下,会有两组流程实例id),终究对这两组流程实例id取交集,这样得到的就是想要的效果了
SELECT PROC_INST_ID_ FROM ( SELECT ahv.PROC_INST_ID_ FROM act_hi_varinst ahv WHERE (ahv.NAME_, ahv.TEXT_) = ('formId', '142') UNION ALL SELECT ahv.PROC_INST_ID_ FROM act_hi_varinst ahv WHERE (ahv.NAME_, ahv.TEXT_) = ('approveType', 'sealApply') ) t GROUP BY PROC_INST_ID_ HAVING count(PROC_INST_ID_) = 2;
以上就是mysql怎样求两个查询的交集的细致内容,更多请关注 百分百源码网 其它相干文章!