mysql では、union を使用して、複数の select ステートメントの結果を 1 つの結果セットに結合し、結果セット内の重複データを削除します。構文は、「select columns,...from table1 Union select columns,. . .テーブル2より」。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
1.mysql Union の構文
mysql Union は、複数の選択からのデータを結合するために使用されます。ステートメント 結果は結果セットに結合されます。構文は次のとおりです。
select column,......from table1 union [all] select column,...... from table2 ...
複数の select ステートメントでは、対応する列のフィールド属性が同じである必要があり、最初の select ステートメントで使用されたフィールド名が結果のフィールド名にも使用されます。
1.1 Union と Union all の違い
union を使用すると、mysql は結果セット内の重複レコードを削除しますが、union all を使用すると、mysql はすべてのレコードを削除します。が返され、結合よりも効率が高くなります。
2. mysql ユニオンの使用例
ユニオンは通常、異なるデータ分類テーブルやデータ履歴テーブルなど、データに類似した 2 つ以上のテーブルをクエリするために使用されます。 、テストに使用される 2 つのテーブルは次のとおりです。
2.1 UNION クエリ
を使用して、2 つのテーブルの記事 ID 番号をクエリします。テーブルとタイトルを削除し、重複レコードを削除します:
SELECT aid,title FROM article UNION SELECT bid,title FROM blog
返されるクエリ結果は次のとおりです:
2.2.UNION クエリ結果の説明
重複レコードとは、クエリ内の各フィールドが完全に繰り返されているレコードを指します。上記の例のように、タイトルが同じで ID 番号が異なる場合は、別のレコードとしてカウントされます。
最初の SELECT ステートメントで使用されたフィールド名は、上の例の aid など、結果のフィールド名にも使用されます。
各 SELECT ステートメントのフィールド名は異なっていてもかまいませんが、フィールド属性は一貫している必要があります。
3. UNION ALL クエリ
を使用して 2 つのテーブルの記事 ID 番号とタイトルをクエリし、すべてのレコードを返します:
SELECT aid,title FROM article UNION ALL SELECT bid,title FROM blog
返されるクエリ結果は次のとおりです。 :
UNION ALL を使用する場合は、データが繰り返されているかどうかを判断せずに、さまざまなクエリを単純に組み合わせるだけです。したがって、クエリ結果に重複データが存在しない、または重複データを削除する必要がないと判断される場合は、UNION ALL を使用してクエリ効率を向上させる必要があります。
推奨学習: mysql ビデオ チュートリアル
以上がmysqlでのunionの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。