ホームページ >データベース >mysql チュートリアル >mysqlで2つのクエリの共通部分を見つける方法

mysqlで2つのクエリの共通部分を見つける方法

coldplay.xixi
coldplay.xixiオリジナル
2020-10-26 15:56:512914ブラウズ

2 つのクエリの共通部分を見つけるための Mysql メソッド: まず、単一セットの変数キーと値のペアを満たすプロセス インスタンス ID を確認し、次に各変数キーと値のペアを条件として使用して、対応するプロセスを検索します。インスタンス ID; 最後に、これら 2 セットのプロセス インスタンス ID の共通部分を取得して、目的の結果を取得します。

mysqlで2つのクエリの共通部分を見つける方法

その他の関連する無料学習の推奨事項: mysql チュートリアル#(ビデオ)

##2 つのクエリの共通部分を見つける Mysql メソッド:

1. プロジェクト要件:

いくつかのプロセス変数を含むプロセス インスタンスのインスタンス ID を取得する必要があります (数は不確実なので、一部だけではなく含める必要があります)

2. 詳細な説明:

1. プロセス変数テーブル act_hi_varinst

フィールド: PROC_INST_ID_(プロセス インスタンス ID)、NAME_(変数名)、TEXT_(変数値)

図 1mysqlで2つのクエリの共通部分を見つける方法

2. 次に、変数 formId=142 およびapproveType=sealApply

を含む、対応するプロセスのインスタンス ID をクエリする必要があります。図 1 に示すように、赤い線のボックス内の値、最終結果は

#図 2mysqlで2つのクエリの共通部分を見つける方法

3. コードの実装

##1. 最初に使用しようとしたクエリ結果は図 1 と同じです (次のクエリ ステートメントは、変数値 formId=142 またはapproveType=sealType を含むプロセスのインスタンス ID を検索することを意味します。複数の変数条件が満たされている場合、行は Take it out になります)、この方法は実行可能ではありません

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. (実現可能な解決策) Intersection を使用してみてください (mysql 自体には Intersection の実装がないため、自分でシミュレートすることしかできません)

クエリのアイデア: 最初に確認する 単一セットの変数キーと値のペアを満たすプロセス インスタンス ID について、各変数キーと値のペアは、対応するキーと値のペアを見つけるための条件として使用されます。プロセス インスタンス ID (現在の例では、2 セットのプロセス インスタンス ID があります)、最後に 2 セットのプロセスについてインスタンス 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で2つのクエリの共通部分を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。