mysql求兩個查詢交集的方法:首先查滿足單組變數鍵值對的流程實例id;然後將每個變數鍵值對作為條件都分別查出對應的流程實例id;最後對這兩組流程實例id取交集,這樣得到的就是想要的結果了。
#更多相關免費學習推薦:mysql教學
# #(影片)
mysql求兩個查詢交集的方法:##一、專案需求:
需要取得包含一些流程變數(數量不確定,且必須都包含,不能只包含其中某幾個)的流程實例的實例id二、詳細說明:
1、流程變數表act_hi_varinst
欄位:PROC_INST_ID_(流程實例id)、NAME_(變數名稱)、TEXT_(變數值)
#圖1
2、現在需要查詢包含變數formId=142和approveType=sealApply的對應流程的實例id
如圖1,只要查出紅線框出的值,最終結果為
圖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') );
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如何求兩個查詢的交集的詳細內容。更多資訊請關注PHP中文網其他相關文章!