MySQL は、現在最も人気のあるリレーショナル データベース管理システムの 1 つです。データベース オペレーターにとって、データのクエリ、計算、処理は必須のスキルです。ただし、場合によっては、結果の分析と処理を容易にするために、いくつかの結果を組み合わせる必要があります。 MySQL では、これを実現する方法が複数あります。
以下では、クエリ結果をマージするために一般的に使用される MySQL メソッドをいくつか紹介します。
UNION は、クエリ結果をマージする最も一般的な方法の 1 つです。複数の SELECT ステートメントの結果を結合し、最終結果から重複行を削除できます。
たとえば、同じ列を持つ 2 つのテーブル A と B があります。
SELECT column1, column2 FROM A UNION SELECT column1, column2 FROM B;
このクエリは、テーブル A と B のデータをマージし、重複する行を削除します。 UNION は 2 つの SELECT ステートメントの結果のみを結合できることに注意してください。 3 つ以上の SELECT ステートメントの結果を結合する必要がある場合は、UNION 演算子を複数回使用する必要があります。
UNION ALL は UNION とよく似ていますが、重複行は削除されません。 UNION ALL を使用すると、重複した行が保持されます。
たとえば、同じ列を持つ 2 つのテーブル A と B があります。
SELECT column1, column2 FROM A UNION ALL SELECT column1, column2 FROM B;
このクエリは、テーブル A と B のデータをマージし、重複した行を保持します。
UNION ALL は重複行を削除する必要がないため、UNION よりも高速かつ効率的です。ただし、データが非常に大きい場合は、クエリのパフォーマンスが影響を受ける可能性があります。
INNER JOIN では、2 つ以上のテーブルのデータを結合し、共通の列のデータを照合できます。この操作は、2 つのテーブルのデータが一致する場合にのみ結果を返します。
たとえば、2 つのテーブル A と B があり、同じ列 column1 があります:
SELECT A.column1, A.column2, B.column3 FROM A INNER JOIN B ON A.column1 = B.column1;
このクエリは、テーブル A と B で一致するデータ行を返します。この例では、一致する行のみが返されます。
LEFT JOIN は INNER JOIN とよく似ており、2 つ以上のテーブルのデータを結合し、それらの共通の列を結合して のデータと一致させることもできます。ただし、一致する結果だけでなく、左側のテーブルに一致しない結果も返します。
たとえば、2 つのテーブル A と B があり、同じ列 column1 があります:
SELECT A.column1, A.column2, B.column3 FROM A LEFT JOIN B ON A.column1 = B.column1;
このクエリは、テーブル A のすべてのデータ行と、テーブル内の一致するデータ行を返します。 B、テーブルAに一致するデータがテーブルBに存在しない場合、NULL値が返されます。
RIGHT JOIN は LEFT JOIN の逆で、右側のテーブルに一致しない結果を返します。
たとえば、2 つのテーブル A と B があり、同じ列 column1 があります。
SELECT A.column1, A.column2, B.column3 FROM A RIGHT JOIN B ON A.column1 = B.column1;
このクエリは、テーブル B のすべてのデータ行と、テーブルの一致するデータ行を返します。 A, テーブルAにテーブルBと一致するデータが存在しない場合は、NULL値が返されます。
FULL OUTER JOIN では、両方のテーブルに一致するものが存在しない場合でも、2 つのテーブルのすべてのデータ行を結合できます。
MySQL は FULL OUTER JOIN ステートメントをサポートしていません。ただし、UNION ALL を LEFT JOIN および RIGHT JOIN と組み合わせて使用すると、同様の効果を得ることができます。
たとえば、2 つのテーブル A と B があり、同じ列 column1 があります:
SELECT A.column1, A.column2, B.column3 FROM A LEFT JOIN B ON A.column1 = B.column1 UNION ALL SELECT A.column1, A.column2, B.column3 FROM A RIGHT JOIN B ON A.column1 = B.column1 WHERE A.column1 IS NULL;
このクエリは、テーブル A とテーブル B のすべてのデータ行との一致を返しますが、一致する行は返しません。データの。
結論
上記は、MySQL でクエリ結果をマージする一般的な方法です。どの方法を選択するかは、必要な結果とクエリのパフォーマンスによって異なります。
クエリを実行するときは、クエリの効率に常に注意してください。ほとんどの場合、UNION 操作には時間がかかります。大規模なデータ セットを使用してクエリを実行する場合は、UNION コマンドの使用を避け、代わりに他の利用可能な方法を使用してクエリのパフォーマンスを最適化する必要があります。
もちろん、特定のビジネス シナリオでは、実際のビジネス ニーズに基づいて使用する方法を選択する必要もあります。
以上がクエリ結果をマージするためのいくつかの一般的な MySQL メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。