MySQL-Methode zum Ermitteln der Schnittmenge zweier Abfragen: Überprüfen Sie zunächst die Prozessinstanz-ID, die einen einzelnen Satz variabler Schlüssel-Wert-Paare erfüllt. Verwenden Sie dann jedes variable Schlüssel-Wert-Paar als Bedingung, um die entsprechende Prozessinstanz-ID zu finden Überprüfen Sie abschließend die beiden Gruppen. Nehmen Sie den Schnittpunkt der Prozessinstanz-IDs, um das gewünschte Ergebnis zu erhalten.
Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)
MySQL-Methode zum Ermitteln der Schnittmenge zweier Abfragen:
1. Projektanforderungen:
Sie müssen die Instanz-ID einer Prozessinstanz erhalten, die einige Prozessvariablen enthält (die Anzahl ist unsicher und sie müssen alle enthalten sein, nicht nur einige davon)
2. Detaillierte Beschreibung:
1. Prozessvariablentabelle act_hi_varinst
Felder: PROC_INST_ID_ (Prozessinstanz-ID), NAME_ (Variablenname), TEXT_ (Variablenwert)
Abbildung 1
2. Jetzt müssen Sie die Instanz-ID des entsprechenden Prozesses abfragen Die Variablen „formId=142“ und „approvType=sealApply“
Wie in Abbildung 1 gezeigt, lautet das Endergebnis
Abbildung 2
3 1. Zuerst habe ich versucht, die schriftliche Methode zu verwenden, und die Abfrageergebnisse sind wie in Abbildung 1 dargestellt. (Die Bedeutung der folgenden Abfrageanweisung lautet: Finden Sie die Instanz-ID des Prozesses, der den Variablenwert formId=142 enthält genehmigtTyp=sealType, und solange eine der mehreren Variablenbedingungen erfüllt ist, wird die Zeile herausgenommen), ist diese Methode nicht durchführbar
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 (Machbare Lösung) Versuchen Sie, Schnittmenge zu verwenden (MySQL selbst hat keine Implementierung der Schnittmenge, sodass Sie sie nur selbst simulieren können)
Abfrageidee: Überprüfen Sie zunächst die Prozessinstanz-ID, die einen einzelnen Satz variabler Schlüssel-Wert-Paare erfüllt, und fügen Sie jede Variable hinzu. Schlüssel-Wert-Paare werden als Bedingungen verwendet, um dies herauszufinden die entsprechenden Prozessinstanz-IDs (im aktuellen Beispiel gibt es zwei Sätze von Prozessinstanz-IDs) und schließlich wird die Schnittmenge dieser beiden Sätze von Prozessinstanz-IDs ermittelt, sodass das gewünschte Ergebnis erhalten wird
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;
Das obige ist der detaillierte Inhalt vonSo finden Sie den Schnittpunkt zweier Abfragen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!