DEV Community

Abhay Singh Kathayat
Abhay Singh Kathayat

Posted on

SQL UNION vs UNION ALL: Key Differences Explained

Difference Between UNION and UNION ALL in SQL

UNION and UNION ALL are SQL operators used to combine the results of two or more SELECT statements. While they serve similar purposes, they differ in how they handle duplicate rows.


1. UNION

  • Combines the results of two or more SELECT statements into a single result set.
  • Automatically removes duplicate rows from the result set.
  • Sorting: Performs an implicit DISTINCT operation to remove duplicates, which can make it slower for large datasets.

Syntax:

SELECT column1, column2
FROM table1
UNION
SELECT column1, column2
FROM table2;
Enter fullscreen mode Exit fullscreen mode

Example:

Table: Customers_USA

CustomerID Name
1 Alice
2 Bob

Table: Customers_UK

CustomerID Name
2 Bob
3 Charlie

Query:

SELECT Name FROM Customers_USA
UNION
SELECT Name FROM Customers_UK;
Enter fullscreen mode Exit fullscreen mode

Result:

Name
Alice
Bob
Charlie

  • Bob appears only once because duplicates are removed.

2. UNION ALL

  • Combines the results of two or more SELECT statements into a single result set.
  • Does not remove duplicate rows.
  • Faster than UNION since no duplicate-checking occurs.

Syntax:

SELECT column1, column2
FROM table1
UNION ALL
SELECT column1, column2
FROM table2;
Enter fullscreen mode Exit fullscreen mode

Example:

Using the same tables Customers_USA and Customers_UK:

Query:

SELECT Name FROM Customers_USA
UNION ALL
SELECT Name FROM Customers_UK;
Enter fullscreen mode Exit fullscreen mode

Result:

Name
Alice
Bob
Bob
Charlie

  • Bob appears twice because duplicates are not removed.

Key Differences


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.

When to Use?

  • Use UNION:

    • When you want a unique set of records from combined queries.
    • Example: Combining customer lists from different regions while ensuring no duplicates.
  • Use UNION ALL:

    • When duplicate records are acceptable or needed.
    • Example: Generating a log of transactions from multiple sources without filtering duplicates.

Conclusion

Both UNION and UNION ALL are valuable tools for combining datasets in SQL. Choosing between them depends on the specific requirements of your query—whether you need duplicate removal or prioritize performance.

Hi, I'm Abhay Singh Kathayat!
I am a full-stack developer with expertise in both front-end and back-end technologies. I work with a variety of programming languages and frameworks to build efficient, scalable, and user-friendly applications.
Feel free to reach out to me at my business email: kaashshorts28@gmail.com.

Top comments (0)