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

王林
リリース: 2023-05-26 22:22:32
転載
2786 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!