mysql에서 두 쿼리의 교차점을 찾는 방법

coldplay.xixi
풀어 주다: 2020-10-26 15:56:51
원래의
2892명이 탐색했습니다.

두 쿼리의 교차점을 찾는 Mysql 방법: 먼저 단일 변수 키-값 쌍 세트를 충족하는 프로세스 인스턴스 ID를 확인한 다음 각 변수 키-값 쌍을 조건으로 사용하여 해당 프로세스 인스턴스 ID를 찾습니다. 마지막으로 두 그룹을 확인하십시오. 원하는 결과를 얻을 수 있도록 프로세스 인스턴스 ID의 교차점을 취하십시오. ㅋㅋㅋ :

일부 프로세스 변수가 포함된 프로세스 인스턴스의 인스턴스 ID를 가져와야 합니다(숫자는 불확실하며 일부가 아닌 모두 포함되어야 함)mysql에서 두 쿼리의 교차점을 찾는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿