Bird
Raised Fist0
SQLquery~10 mins

UNION combining result sets in SQL - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - UNION combining result sets
Execute Query 1
Get Result Set 1
Execute Query 2
Get Result Set 2
Combine Result Sets
Remove Duplicates
Return Final Result
The UNION operation runs two queries, combines their results, removes duplicates, and returns one final list.
Execution Sample
SQL
SELECT name FROM students
UNION
SELECT name FROM teachers;
This query combines names from students and teachers tables, removing duplicates.
Execution Table
StepActionQuery ResultCombined ResultNotes
1Execute first SELECT['Alice', 'Bob', 'Charlie']['Alice', 'Bob', 'Charlie']First query result collected
2Execute second SELECT['Bob', 'Diana', 'Eve']['Alice', 'Bob', 'Charlie', 'Bob', 'Diana', 'Eve']Second query result collected and appended
3Remove duplicatesN/A['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']Duplicates like 'Bob' removed
4Return final resultN/A['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']Final combined unique list returned
💡 All rows combined and duplicates removed, final unique result returned
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
ResultSet1[]['Alice', 'Bob', 'Charlie']['Alice', 'Bob', 'Charlie']['Alice', 'Bob', 'Charlie']['Alice', 'Bob', 'Charlie']
ResultSet2[][]['Bob', 'Diana', 'Eve']['Bob', 'Diana', 'Eve']['Bob', 'Diana', 'Eve']
CombinedResult[]['Alice', 'Bob', 'Charlie']['Alice', 'Bob', 'Charlie', 'Bob', 'Diana', 'Eve']['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']
Key Moments - 3 Insights
Why does the final result not include duplicate names like 'Bob' twice?
Because UNION removes duplicates after combining both result sets, as shown in step 3 of the execution_table.
What happens if the two SELECT queries return different columns or data types?
UNION requires both queries to have the same number of columns and compatible data types; otherwise, it will cause an error before combining.
Does UNION preserve the order of rows from the original queries?
No, UNION does not guarantee order; to control order, use ORDER BY after the UNION operation.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the Combined Result after step 2?
A['Alice', 'Bob', 'Charlie', 'Bob', 'Diana', 'Eve']
B['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']
C['Bob', 'Diana', 'Eve']
D['Alice', 'Bob', 'Charlie']
💡 Hint
Check the Combined Result column in row for step 2 in execution_table
At which step are duplicates removed according to the execution_table?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look for the step mentioning 'Remove duplicates' in the Action column
If the second SELECT returned ['Bob', 'Diana', 'Eve', 'Frank'], how would the final Combined Result change?
A['Alice', 'Bob', 'Charlie', 'Diana', 'Eve']
B['Bob', 'Diana', 'Eve', 'Frank']
C['Alice', 'Bob', 'Charlie', 'Diana', 'Eve', 'Frank']
D['Alice', 'Bob', 'Charlie', 'Bob', 'Diana', 'Eve', 'Frank']
💡 Hint
Refer to variable_tracker CombinedResult after step 3 and consider adding 'Frank' without duplicates
Concept Snapshot
UNION combines results from two SELECT queries.
It removes duplicate rows from combined results.
Both queries must have same number of columns and compatible types.
Use ORDER BY after UNION to sort results.
UNION returns unique rows from both queries.
Full Transcript
The UNION operation in SQL runs two SELECT queries separately, collects their results, then combines these results into one list. After combining, it removes any duplicate rows so that each row appears only once in the final output. This process requires both queries to have the same number of columns with compatible data types. The final combined unique list is then returned. If you want the results in a specific order, you add an ORDER BY clause after the UNION. This visual trace showed step-by-step how the first query's results are collected, then the second's, how they are combined, duplicates removed, and the final list returned.

Practice

(1/5)
1. What does the SQL UNION operator do when combining results from two SELECT queries?
easy
A. Combines rows but keeps all duplicates
B. Combines rows from both queries and removes duplicate rows
C. Joins tables based on a common column
D. Filters rows based on a condition

Solution

  1. Step 1: Understand UNION behavior

    The UNION operator combines rows from two or more SELECT queries into a single result set.
  2. Step 2: Check duplicate handling

    By default, UNION removes duplicate rows to ensure unique results.
  3. Final Answer:

    Combines rows from both queries and removes duplicate rows -> Option B
  4. Quick Check:

    UNION removes duplicates = A [OK]
Hint: UNION removes duplicates by default, unlike UNION ALL [OK]
Common Mistakes:
  • Confusing UNION with UNION ALL
  • Thinking UNION joins tables by columns
  • Assuming UNION filters rows
2. Which of the following is the correct syntax to combine two SELECT queries using UNION?
easy
A. SELECT col1 FROM table1 UNION ALL JOIN SELECT col1 FROM table2;
B. SELECT col1 FROM table1 JOIN SELECT col1 FROM table2;
C. SELECT col1 FROM table1 WHERE UNION SELECT col1 FROM table2;
D. SELECT col1 FROM table1 UNION SELECT col1 FROM table2;

Solution

  1. Step 1: Review correct UNION syntax

    The correct syntax is to write two SELECT statements separated by the UNION keyword.
  2. Step 2: Identify invalid options

    Options B, C, and D misuse JOIN or WHERE with UNION, which is incorrect syntax.
  3. Final Answer:

    SELECT col1 FROM table1 UNION SELECT col1 FROM table2; -> Option D
  4. Quick Check:

    UNION syntax = SELECT ... UNION SELECT ... [OK]
Hint: UNION joins SELECTs directly, no JOIN or WHERE needed [OK]
Common Mistakes:
  • Using JOIN instead of UNION
  • Placing WHERE before UNION
  • Combining UNION ALL with JOIN incorrectly
3. Given two tables:
Table A: id
1
2
3

Table B: id
2
3
4

What is the result of:
SELECT id FROM A UNION SELECT id FROM B;
medium
A. [1, 2, 3, 4]
B. [1, 2, 2, 3, 3, 4]
C. [2, 3]
D. [1, 4]

Solution

  1. Step 1: List rows from both tables

    Table A has ids 1, 2, 3; Table B has ids 2, 3, 4.
  2. Step 2: Apply UNION behavior

    UNION combines all rows and removes duplicates, so final list is 1, 2, 3, 4.
  3. Final Answer:

    [1, 2, 3, 4] -> Option A
  4. Quick Check:

    UNION removes duplicates = [1, 2, 3, 4] [OK]
Hint: UNION removes duplicates, so no repeated ids appear [OK]
Common Mistakes:
  • Expecting duplicates to appear
  • Confusing UNION with UNION ALL
  • Listing only common ids
4. Consider this SQL query:
SELECT name FROM employees UNION SELECT name, department FROM managers;
What is the issue with this query?
medium
A. The number of columns in both SELECT statements differ
B. UNION cannot be used with SELECT statements
C. The query will return duplicate rows
D. The query is missing a WHERE clause

Solution

  1. Step 1: Check column counts in SELECTs

    The first SELECT returns 1 column (name), the second returns 2 columns (name, department).
  2. Step 2: Understand UNION column rules

    UNION requires all SELECT statements to have the same number of columns with compatible types.
  3. Final Answer:

    The number of columns in both SELECT statements differ -> Option A
  4. Quick Check:

    UNION needs same columns = C [OK]
Hint: UNION needs same column count in all SELECTs [OK]
Common Mistakes:
  • Ignoring column count mismatch
  • Thinking UNION filters duplicates only
  • Assuming WHERE clause is mandatory
5. You have two tables:
Sales2023(product, amount)
Apple, 100
Banana, 150

Sales2024(product, amount)
Banana, 200
Cherry, 300

Write a query using UNION to list all unique products sold in both years, sorted alphabetically.
hard
A. SELECT product, amount FROM Sales2023 UNION SELECT product, amount FROM Sales2024 ORDER BY amount;
B. SELECT product FROM Sales2023 UNION ALL SELECT product FROM Sales2024 ORDER BY product;
C. SELECT product FROM Sales2023 UNION SELECT product FROM Sales2024 ORDER BY product;
D. SELECT product FROM Sales2023 JOIN Sales2024 ON product ORDER BY product;

Solution

  1. Step 1: Select product column from both tables

    We want unique products, so select only the product column from both tables.
  2. Step 2: Use UNION to combine and remove duplicates

    UNION combines both lists and removes duplicates, giving unique products.
  3. Step 3: Sort results alphabetically

    ORDER BY product sorts the final list alphabetically.
  4. Final Answer:

    SELECT product FROM Sales2023 UNION SELECT product FROM Sales2024 ORDER BY product; -> Option C
  5. Quick Check:

    UNION + ORDER BY product = B [OK]
Hint: Use UNION to remove duplicates, ORDER BY to sort [OK]
Common Mistakes:
  • Using UNION ALL which keeps duplicates
  • Selecting amount column when only product needed
  • Using JOIN instead of UNION