ホームページ  >  記事  >  データベース  >  MySQL でクエリ結果をマージする方法

MySQL でクエリ結果をマージする方法

王林
王林転載
2023-05-26 22:22:322755ブラウズ

UNION キーワードを使用して、複数の SELECT ステートメントを 1 つの結果セットに結合できます。マージする場合、2 つのテーブルに対応する列の数とデータ型は同じである必要があります。 UNION または UNION ALL キーワードを使用して SELECT ステートメントを区切ります。 UNION ではキーワード ALL が使用されず、重複レコードは実行中に削除され、返される行はすべて一意です。キーワード ALL を使用する機能は、重複行を削除したり、結果を自動的に並べ替えたりすることではありません。基本的な構文形式は次のとおりです。

SELECT column,... FROM table1
UNION [ALL]
SELECT column,... FROM table2

価格が 9 未満のすべての果物の情報をクエリし、s_id が 101 および 103 に等しいすべての果物の情報をクエリし、UNION を使用してクエリ結果を接続します。 SQL ステートメントは次のとおりです:

SELECT s_id, f_name, f_price
FROM fruits
WHERE f_price < 9.0
UNION SELECT s_id, f_name, f_price
FROM fruits
WHERE s_id IN(101,103);

結合されたクエリ結果は次のとおりです:

MySQL でクエリ結果をマージする方法

UNION は複数の SELECT ステートメントの結果を 1 つの結果セットに結合します。 、前述したように..各 SELECT ステートメントの結果を個別に表示できます。

SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0;

MySQL でクエリ結果をマージする方法

SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103);

MySQL でクエリ結果をマージする方法

個別のクエリの結果から、最初の SELECT がステートメント 価格が 9 未満の果物をクエリするには、2 番目の SELECT ステートメントでサプライヤー 101 と 103 が提供する果物をクエリします。 UNION を使用して 2 つの SELECT ステートメントを区切ります。実行後、出力結果を 1 つの結果セットに結合し、重複するレコードを削除します。

前の例では、重複行を含めるために UNION ALL を使用しているため、個別にクエリを実行すると同じレコードが生成されました。 UNION は、クエリ結果セットから重複行を自動的に削除します。削除せずに一致するすべての行を返したい場合は、UNION ALL を使用できます。

価格が 9 未満のすべての果物の情報をクエリし、s_id が 101 および 103 に等しいすべての果物の情報をクエリし、UNION ALL を使用してクエリ結果を結合します。SQL ステートメントは次のとおりです。

SELECT s_id, f_name, f_price
FROM fruits
WHERE f_price < 9.0
UNION ALL
SELECT s_id, f_name, f_price
FROM fruits
WHERE s_id IN(101,103);

クエリ結果は次のとおりです:

MySQL でクエリ結果をマージする方法

結果からわかるように、ここでのレコードの総数はレコード数の合計と等しくなります。 2 つの SELECT ステートメントによって返されるレコードの数。接続クエリの結果では重複行は削除されません。

ヒント: UNION と UNION ALL の違い: UNION ALL を使用する機能は、重複行を削除しないことです。また、ALL キーワード ステートメントは実行時に必要なリソースが少ないため、可能な限り使用してください。したがって、重複行があることがわかっているが、これらの行を保持したい場合、およびクエリ結果に重複データがないこと、または重複データを削除する必要がないことを確認する場合は、UNION ALL を使用してクエリを改善する必要があります。効率。

以上がMySQL でクエリ結果をマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。