ホームページ データベース mysql チュートリアル MySQL でクエリ結果をマージする方法

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

May 26, 2023 pm 10:22 PM
mysql

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 サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? データベースにおける Java 列挙型のアプリケーション シナリオは何ですか? May 05, 2024 am 09:06 AM

データベースにおける Java 列挙型のアプリケーション シナリオは何ですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

PHP 配列ページングのパフォーマンス最適化戦略 PHP 配列ページングのパフォーマンス最適化戦略 May 02, 2024 am 09:27 AM

PHP 配列ページングのパフォーマンス最適化戦略

See all articles