UNION と UNION ALL は、2 つ以上の SELECT ステートメントの結果を結合するために使用される SQL 演算子です。これらは同様の目的を果たしますが、重複行の処理方法が異なります。
SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2;
CustomerID | Name |
---|---|
1 | Alice |
2 | Bob |
CustomerID | Name |
---|---|
2 | Bob |
3 | Charlie |
クエリ:
SELECT Name FROM Customers_USA UNION SELECT Name FROM Customers_UK;
Name |
---|
Alice |
Bob |
Charlie |
SELECT column1, column2 FROM table1 UNION ALL SELECT column1, column2 FROM table2;
同じテーブル Customers_USA と Customers_UK を使用する:
クエリ:
SELECT Name FROM Customers_USA UNION ALL SELECT Name FROM Customers_UK;
Name |
---|
Alice |
Bob |
Bob |
Charlie |
Feature | UNION | UNION ALL |
---|---|---|
Duplicates | Removes duplicate rows. | Retains all rows, including duplicates. |
Performance | Slower due to duplicate removal. | Faster since no duplicate-checking. |
Use Case | When duplicates must be eliminated. | When duplicates are acceptable or necessary. |
Sorting | Implicit sorting (deduplication). | No implicit sorting. |
いつ使用しますか?
結合されたクエリから一意のレコードのセットが必要な場合。 例: 重複しないようにしながら、異なる地域の顧客リストを結合します。
結論
以上がSQL UNION と UNION ALL: 主な違いの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。