ホームページ >データベース >mysql チュートリアル >MySQL クエリ データ マージ クエリ結果

MySQL クエリ データ マージ クエリ結果

coldplay.xixi
coldplay.xixi転載
2021-03-17 09:32:554749ブラウズ

MySQL クエリ データ マージ クエリ結果.

  • union キーワードを使用すると、複数の選択ステートメントを指定し、その結果を 1 つの結果セットに結合できます。マージする場合、2 つのテーブルに対応する列の数とデータ型は同じである必要があります。各選択ステートメントを区切るには、union または Union all キーワードを使用します。
  • Union は、キーワード all を使用しません。重複レコードは実行中に削除され、返される行はすべて一意です。キーワード all を使用する機能は、重複行を削除せず、結果を自動的に並べ替えることもありません。
    基本的な構文形式は次のとおりです:
select column,...from table1union [all]select column,... from table2

(無料学習の推奨事項: mysql ビデオ チュートリアル)

#[例 1] 価格が 9 未満のすべての果物の情報をクエリし、s_id が 101 と 103 に等しいすべての果物の情報をクエリし、クエリ結果を結合するために Union を使用する SQL ステートメント

mysql> 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);+------+------------+---------+| s_id | f_name     | f_price |+------+------------+---------+|  104 | lemon      |    6.40 ||  101 | apple      |    5.20 ||  103 | apricot    |    2.20 ||  104 | berry      |    7.60 ||  107 | xxxx       |    3.60 ||  105 | melon      |    8.20 ||  101 | cherry     |    3.20 ||  105 | xbabay     |    2.60 ||  102 | grape      |    5.30 ||  107 | xbabay     |    3.60 ||  101 | apple      |    5.20 ||  103 | apricot    |    2.20 ||  101 | blackberry |   10.20 ||  101 | cherry     |    3.20 ||  103 | coconut    |    9.20 |+------+------------+---------+15 rows in set (0.06 sec)
Union は、複数の select ステートメントの結果を結果セットに結合します。各 select ステートメントの結果を個別に表示できます。

mysql> select s_id,f_name,f_price    -> from fruits    -> where f_price < 9.0;+------+---------+---------+| s_id | f_name  | f_price |+------+---------+---------+|  104 | lemon   |    6.40 ||  101 | apple   |    5.20 ||  103 | apricot |    2.20 ||  104 | berry   |    7.60 ||  107 | xxxx    |    3.60 ||  105 | melon   |    8.20 ||  101 | cherry  |    3.20 ||  105 | xbabay  |    2.60 ||  102 | grape   |    5.30 ||  107 | xbabay  |    3.60 |+------+---------+---------+10 rows in set (0.00 sec)mysql> select s_id,f_name,f_price    -> from fruits    -> where s_id in(101,103);+------+------------+---------+| s_id | f_name     | f_price |+------+------------+---------+|  101 | apple      |    5.20 ||  103 | apricot    |    2.20 ||  101 | blackberry |   10.20 ||  101 | cherry     |    3.20 ||  103 | coconut    |    9.20 |+------+------------+---------+5 rows in set (0.00 sec)
個別のクエリ結果からわかるように、最初の select ステートメントは価格が 9 未満の果物をクエリし、2 番目の select ステートメントは提供された果物をクエリします。サプライヤー 101 および 103 による。フルーツ。

    union を使用して 2 つの select ステートメントを区切ります。実行後、出力結果を 1 つの結果セットに結合し、重複するレコードを削除します。
  • 重複行を含めるには、すべて結合を使用します。 Union は、クエリ結果セットから重複行を自動的に削除します。削除せずに一致するすべての行を返したい場合は、Union all を使用できます。
[例 2] 価格が 9 未満のすべての果物の情報をクエリし、s_id が 101 および 103 に等しいすべての果物の情報をクエリし、クエリ結果を結合するために Union All を使用します。 SQL ステートメントは次のとおりです:

mysql> 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);+------+------------+---------+| s_id | f_name     | f_price |+------+------------+---------+|  104 | lemon      |    6.40 ||  101 | apple      |    5.20 ||  103 | apricot    |    2.20 ||  104 | berry      |    7.60 ||  107 | xxxx       |    3.60 ||  105 | melon      |    8.20 ||  101 | cherry     |    3.20 ||  105 | xbabay     |    2.60 ||  102 | grape      |    5.30 ||  107 | xbabay     |    3.60 ||  101 | apple      |    5.20 ||  103 | apricot    |    2.20 ||  101 | blackberry |   10.20 ||  101 | cherry     |    3.20 ||  103 | coconut    |    9.20 |+------+------------+---------+15 rows in set (0.00 sec)
ご覧のとおり、ここでのレコードの合計数は、2 つの select ステートメントによって返されるレコード数の合計と等しくなります。接続クエリの結果は重複行を削除しません。 。

ユニオンとユニオンオールの違い:

    ユニオンオール
  • を使用する機能は、重複した行を削除することではありません。すべてのキーワード文が実行されます。必要なリソースが少ないため、できるだけ使用します。 クエリ結果に重複データが存在しないことが確実である場合、または重複データを削除する必要がない場合は、uninon all を使用してクエリの効率を向上させてみてください。
#その他の関連する無料学習の推奨事項:

mysql チュートリアル(ビデオ)

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

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