집 >데이터 베이스 >MySQL 튜토리얼 >mysql에서 두 쿼리의 교차점을 찾는 방법
두 쿼리의 교차점을 찾는 Mysql 방법: 먼저 단일 변수 키-값 쌍 세트를 충족하는 프로세스 인스턴스 ID를 확인한 다음 각 변수 키-값 쌍을 조건으로 사용하여 해당 프로세스 인스턴스 ID를 찾습니다. 마지막으로 두 그룹을 확인하십시오. 원하는 결과를 얻을 수 있도록 프로세스 인스턴스 ID의 교차점을 취하십시오. ㅋㅋㅋ :
일부 프로세스 변수가 포함된 프로세스 인스턴스의 인스턴스 ID를 가져와야 합니다(숫자는 불확실하며 일부가 아닌 모두 포함되어야 함)
2. 자세한 설명:1. 프로세스 변수 테이블 act_hi_varinst Fields: PROC_INST_ID_(프로세스 인스턴스 ID), NAME_(변수 이름), TEXT_(변수 값)
그림 1
2. 이제 해당 프로세스의 인스턴스 ID를 쿼리해야 합니다. 변수 formId=142 및 ApprovalType=sealApply 그림 1과 같이 빨간색 선 상자의 값이 발견되는 한 최종 결과는
그림 2
3입니다. 1 먼저 in writing 방식을 사용해 보았는데, 쿼리 결과는 그림 1과 같습니다. (다음 쿼리문의 의미는 변수 값 formId=142가 포함된 프로세스의 인스턴스 ID를 찾거나 ApprovalType=sealType, 여러 변수 조건 중 하나가 충족되면 해당 행이 제거됩니다.) 이 방법은 불가능합니다
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에서 두 쿼리의 교차점을 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!